4 ms·
One other thing they give you at a large organization is flexibility in your stack If a team wants to try out a different language, or hosting model, or even j
by brundolf 4y ago
One other thing they give you at a large organization is flexibility in your stack
If a team wants to try out a different language, or hosting model, or even just framework/tooling, those things can be really hard to do within the same codebase; much easier when your only contract is handling JSON requests. And if your whole organization is totally locked into a single stack, it's hard to keep evolving on some axes
(I'm generally against microservices, but this is one of the more compelling arguments I've heard for them, though it still wouldn't mean you need to eagerly break things up without a specific reason)
- mstibbard 4y agoForcing consistent language, runtime, tooling etc is generally a good thing as it reduces ongoing operational burden as well as some retention & hiring dilemmas.
- oflor 4y agoTech zoo sometimes considered to be an anti-pattern in microservices. By introducing a different language into your organization, you decrease the mobility of developers between code bases and dilute technical knowledge.
- brundolf 4y agoEverybody shouldn't pull in their favorite stack just for fun, but it seems valuable to have the option of trying out new things that could turn out to be a better way forward for the org
- JAlexoid 4y agoNot worshiping the Microservice, doesn't mean that you avoid services in different languages. Not all engineers need to move around - DS and MLEs are generally useless on the frontend, and vice versa.
- oflor 4y agoRewriting a module from one tech stack to another is not much harder when that module was a part of a monolith and not a separate service, except that you haven't paid the upfront cost of bootstrapping a new service, putting in RPC calls, etc. And in any case, starting a project as microservices is already a bad practice due to a number of reasons, the most important for me is that it's hard to change module boundaries, which you will most likely get wrong in a new project.