Decision NoteResearchedSenior
Microservices or a modular monolith?
Independent deployment is valuable only when it outweighs distributed-system cost.
Last reviewed July 2026
Start with the constraint
A messy codebase does not automatically need network boundaries. First identify whether the real constraint is ownership, deployment, scaling, reliability, or poor internal design.
My default
I prefer deliberate modules in one deployable system until independent operation has measurable value.
- Define business-oriented module boundaries
- Control dependencies and data ownership
- Observe module behavior before extraction
- Extract incrementally with compatibility and rollback
When services earn their cost
Separate services make more sense when independent teams, scaling profiles, security boundaries, or deployment schedules create enough value to justify network failure, contracts, observability, and operational ownership.
#architecture#microservices#monolith