DM
Engineering journal
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