The Monolith Gets a Bad Rap
Most teams should start with a modular monolith. It's simpler to develop, test, deploy, and debug. The complexity of distributed systems is real and should be earned, not assumed.
When Microservices Make Sense
- Team size exceeds 8-10 engineers
- Different parts of the system have different scaling requirements
- You need technology polyglot for specific domains
- Independent deployment cycles are critical
The Hidden Costs
Distributed tracing, eventual consistency, network failures, deployment coordination—these aren't theoretical problems. They're daily operational realities.
My Decision Framework
I use a simple framework: start modular, extract when painful, never pre-optimize for scale you don't have yet.