The team wants microservices too early
“A young product has unclear boundaries but is accumulating queues, network calls, deployments, and distributed transactions.”
THE PRINCIPLE
Distribution multiplies boundary mistakes. Discover the domain before paying the distributed-systems tax.
FIRST MOVES
- Define modules around business capabilities, not technical layers.
- Give each module an explicit public API and keep its storage private by convention.
- Record decisions and watch coupling, scaling, ownership, and release pressure.
- Extract a service when the boundary is stable and independent operation has measurable value.
TOOLS: THEN → NOW
SOA/ESB and service-per-entityModular monoliths, domain events, selective extraction
Diagram-only boundariesPackage rules and architecture tests
PATTERN SNAPSHOT
payments/
domain/ // rules and invariants
application/ // use cases
infrastructure/ // database and provider adapters
index.ts // the only public module surfaceCLOSE THE AI. EXPLAIN THIS.
Name two signals that justify extracting a module into an independent service.Guide reviewed