← Back to the library
ArchitectureCore · 7 min

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

  1. Define modules around business capabilities, not technical layers.
  2. Give each module an explicit public API and keep its storage private by convention.
  3. Record decisions and watch coupling, scaling, ownership, and release pressure.
  4. 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 surface

CLOSE THE AI. EXPLAIN THIS.

Name two signals that justify extracting a module into an independent service.

Guide reviewed