For a decade, "microservices vs monolith" was an argument about human teams: Conway's Law, independent deploys, blast radius. In 2026 a new participant walked into the codebase and quietly changed the math: the AI coding agent.
We build software for a living. Our work is production systems for regulated industries, and we've spent the last year with agents (Claude Code, Cursor, the usual suspects) reading and writing real code alongside us. The pattern is consistent enough to say out loud: agents reason far better over a well-structured modular monolith than over a fleet of microservices. And we're not alone in moving that direction. The CNCF has reported a wave of teams consolidating services rather than splitting further.
Here's why, and where it still breaks.
The original case for microservices was largely organizational: let many teams ship independently without stepping on each other. That's a real benefit for humans, at scale.
But an AI agent's bottleneck isn't team coordination. It's context. An agent is only as good as what it can see and hold at once. And microservices are, by design, an architecture of hidden context:
These are the same costs we wrote about in our trip to "microservices hell": the network tax, the observability tax, the eventual-consistency headache. For a human team they're an operational drag. For an AI agent they're a reasoning wall, because the information it needs to be correct is precisely the information the architecture hides.
Flip every one of those and you get the modular monolith, with strong module boundaries inside a single deployable:
The modular monolith keeps the design benefit of microservices (clean separation, clear boundaries) while removing the operational fog that both humans and agents trip on. You get roughly 90% of the architectural benefit at about 10% of the cost, and now there's a second reason it matters: it's the difference between an agent that can safely refactor your system and one that flails across repos it can't hold in its head.
The hope is that agents get good enough to manage distributed systems for us. Maybe, eventually. But today, handing an agent a microservices estate mostly multiplies the surface area where it can be confidently wrong, and distributed-systems bugs are the most expensive kind to be wrong about. Giving the agent a smaller, coherent world isn't a limitation; it's how you get trustworthy output. The teams getting the most out of agents in 2026 aren't the ones with the most services. They're the ones whose codebase an agent can actually understand.
This isn't anti-microservices zealotry. Split a module into its own service when you have a clear, painful, obvious reason: a component with a wildly different scaling profile, a hard security or compliance isolation boundary, or a team that genuinely must deploy on its own cadence. That's a refactoring step you earn, not a starting point, and not a default you adopt because a conference talk said so. Start with the modular monolith; extract a service the day a specific module forces your hand, and not before.
Microservices solved a human-team problem and charged an operational tax to do it. AI agents don't have the problem, yet they pay the tax twice, because the architecture hides exactly the context they need to reason. If you're rebuilding your team around AI agents in 2026, the highest-leverage architectural decision you can make is to give them a codebase they can hold in one head: a modular monolith.
We build this way on purpose, on production systems where an agent (and a new senior engineer, and an auditor) can understand the whole thing. If that's the kind of software you need built, here's how we do it.
What's your experience letting agents loose on microservices vs a monolith? I'd genuinely like to hear where this breaks.