Member-only story
Modular Monoliths: The Comeback Architecture
3 min readMay 30, 2025
Why splitting too soon might break you — and how to build a clean, modular system in .NET
Microservices are sexy. They scale teams and tech.
But sometimes, a monolith — a modular monolith — is exactly what you need.
In this post, I’ll walk through:
- Why modular monoliths are making a comeback
- When you shouldn’t go microservices
- How to enforce boundaries inside a .NET monolith
- Real-world patterns and battle scars
- C# examples with
InternalsVisibleTo
, DI modules,ITenantService
tricks, and more
The Theory
Microservices are not the goal
They’re a response to pain. Scaling pain. Deployment pain. Team coordination pain.
But what if you don’t have that pain — yet?
Jumping into microservices too early is like hiring HR before your first employee.
“You don’t start with a distributed system. You start with a monolith, and you carefully modularize it…”
— Martin Fowler, Monolith First
When a modular monolith wins?
- Early-stage startup: Faster to build, debug, deploy