Chapter 11 — The Modular Monolith Architecture Style
Core ideas
- Domain-partitioned, monolithic. Single deployment unit, but internally organized by domain modules with well-defined boundaries — not by technical layer.
- Gives you many of the maintainability/modularity benefits of microservices without the distribution cost. A strong “start here” for domain-driven systems and a natural stepping stone toward services later.
- Governance matters: without fitness functions enforcing module boundaries, a modular monolith degrades into a big ball of mud.
Trade-offs / when to use
You want clean domain boundaries, good maintainability/evolvability, and simple operations, and you don’t (yet) need independent deployment/scaling. Cheaper and simpler than microservices; better modularity than layered.