I guess it's good to finally see some acknowledgement, but this is too late for that particular organization. Beware of hyped architecture bandwagons?
I guess it's good to finally see some acknowledgement, but this is too late for that particular organization. Beware of hyped architecture bandwagons?
Maybe there are ways to work in such an environment, but if so we didn't find them and no-one had the experience to know them.
We ended up merging some of the modules together just to get our agility back.
For SOA a mono-repo with synchronized releases is a huge help.
In one commit you can refactor a shared module and update all apps that depend on it. And you know when you deploy to staging or prod that all machines got the latest code
The reason is that when you have 1000s of machines, the push will fail for some. Either the machine will be offline and out of service when the new version is released, or its network connection may be down, or a cosmic ray may flip a bit and make the process crash when installing, triggering a rollback. Particularly when handling user data, you need to code defensively around these and not assume that the server you're talking to has the same code you just wrote in your commit.
Obviously these problems don't manifest when you're pushing to 1-3 machines, but if your deployment is that small, why not run it all in-process with a monolithic app anyway?
I think that none of these are problems inherent to microservice architecture, but to someone learning by designing such a system for the first time.
(honest question)
"Despite these positive experiences, however, we aren't arguing that we are certain that microservices are the future direction for software architectures. While our experiences so far are positive compared to monolithic applications, we're conscious of the fact that not enough time has passed for us to make a full judgement."
It is pretty clear the architect in question appears to have misinterpreted how proven Fowler believed microservices architectures were at the time.
Martin or Chad?