Monoliths vs Microservices
2025-11-29
This has been debated for a long time, but you can't say that either side is a clear winner. I like to put aside the polarizing tone and acknowledge that both sides have real merits and try to offer a middle ground.
Where Monoliths Shine
Monoliths work well when the system is:
- relatively small or medium in scope
- developed by a single team/company
- still evolving rapidly
They minimize operational overhead and make it easier to keep the functionality conceptually unified.
Where Microservices Make Sense
Microservices emerged as an architectural response to specific pressures:
- parts of the system scale very differently
- the system has clear, stable boundaries between subdomains
- failure isolation or infrastructure specialization is essential
Without these pressures, microservices often increase complexity unnecessarily, and introduce operational overhead
A More Nuanced Approach
My preferred approach is to start from a well-designed modular monolith. Then, instead of decomposing everything, extract only the components with distinct scaling or reliability requirements.
Examples:
- a search service that receives millions of requests for every checkout
- a machine-learning pipeline that needs GPUs while the rest doesn’t
You keep one system, one mental model, one deployment path. Until the system itself tells you otherwise.