I’ve been wrestling with this question as we scale from 50 to 120 engineers: When does the complexity tax of microservices actually become worth paying?
Everyone talks about the monolith-to-microservices journey like it’s inevitable—start simple, grow, then decompose. But watching the industry in 2026, I’m seeing something different. The middle ground is real, and ignoring it might be costing us time, money, and engineering sanity.
The Binary Trap We Keep Falling Into
The typical narrative goes: monoliths are simple but don’t scale; microservices are complex but necessary for growth. This framing implies there are only two choices, and if you’re growing, you must eventually migrate to microservices.
But what if that’s wrong?
The Modular Monolith Renaissance
I’m seeing more teams—including some very large ones—embrace modular monoliths as a destination, not a stepping stone. Clear module boundaries, domain-driven design, strict interface contracts—all within a single deployable unit.
Amazon Prime Video famously consolidated their microservices monitoring system back into a monolith, cutting infrastructure costs by over 90%. Not because they’re small. Because a monolith solved their actual problem better.
A recent CNCF survey found that approximately 42% of organizations that initially adopted microservices have consolidated at least some services back into larger deployable units. That’s not a rounding error—it’s a trend.
When Microservices Make Sense (And When They Don’t)
Here’s what I’m seeing work:
Microservices shine when:
- Different components have genuinely different scaling requirements (not just “might someday”)
- You have independent teams that need to deploy on completely different schedules
- Regulatory or compliance needs demand true isolation
- You’re operating at massive scale where operational complexity is already your baseline
Modular monoliths win when:
- Most components scale together (which is true for most applications)
- Your team is under 100 engineers
- Development velocity matters more than independent deployability
- You can’t afford dedicated DevOps/SRE teams for service mesh management
The Real Question: What Problem Are We Solving?
I think we often optimize for the wrong thing. We choose microservices because we want to scale engineering teams, but then spend 30% of engineering time on distributed systems problems. We want deployment independence, but our services are so coupled that we still do coordinated releases.
The honest question isn’t “monolith or microservices?” It’s:
- What’s our actual scaling constraint right now?
- Is our bottleneck architectural or organizational?
- Can we solve it with better module boundaries instead of network boundaries?
My Take: Default to Modular Monolith
At our company, we’re scaling to 120 engineers on a modular monolith. Clear domain boundaries, strict interface contracts, independent module ownership by teams. We might go to microservices eventually—but only when we have evidence that the modular monolith is causing real problems.
The threshold I’m watching: when different domains have truly independent scaling needs, when our deployment size creates actual risk, or when team coordination overhead exceeds the operational complexity of distributed systems.
What’s your experience? Are you seeing the same pattern, or am I missing something critical about why microservices are still the inevitable destination for growth?