Monolithic vs Microservices Architecture

Which would you choose? Why?

I think the obvious answer is “it depends”. However, I think in general, micro-services are a very specific solution to a very specific kind of problem. In general, it’s very complicated to architect such a system, and you make a certain set of performance tradeoffs that you might not fully be able to understand when initially considering the decision. So, in my experience, I’d generally advise against a micro-services architecture unless you’re fairly certain that your problem space falls into the narrow domain where this architecture helps.


@benjamin.kyrlach in your view what would be an example of a narrow domain problem space where architecture helps and microservices would be a fit?

As much as I don’t like it (lulz), I have to agree with @benjamin.kyrlach. Mostly. To me, I’ve learned it’s about scale. So at the beginning, start with a monolith. Then start breaking pieces of the app off into its own services so they can be scaled individually of the main app. Rinse and repeat. However, I will say there are alot of cool things you can do with a microservices architecture and service meshes around A/B testing, local dev testing, and the like.

Agreed w/ @benjamin.kyrlach’s points.

The tradeoffs that micro-services introduce should not be ignored: configuration, orchestration, logging, traceability are real problems to be understood before embarking on that journey.

A huge team w/ a well-defined, externally published API / service: welcome to microservices!
A small team w/ an internal API with dozens of models: all hail the megalith!

Hi Alex! Thanks for joining and posting in our forum.