Writing · 14.10.25 · 1 min

Modular monolith: maturity, not a comeback

Move service boundaries to module boundaries — simpler deploy, clear contracts.

Modular monolith: maturity, not a comeback

Splitting into microservices buys deploy independence; many teams buy a distributed monolith — same release train, plus network hops.

In a modular monolith, a module is a bounded context. Clear internal interfaces; forbidden cross-module dependencies guarded by ArchUnit or NetArchTest. Single deploy, simpler observability. Extract a module to a service when needed — not slice the whole system upfront.

Modular monolith Reverse migration, service back to module, is rare and painful; I keep service count deliberately low at the start. Monolith isn't embarrassing — badly bounded monolith is.

Modular monolith: maturity, not a comeback — Aziz Osmanoğlu