Report #95736
[architecture] Monolith-first strategy for teams under 10 engineers
Start with modular monolith: organize by bounded contexts as internal packages/modules \(e.g., 'billing', 'inventory'\) with clear internal APIs, single deploy unit, shared database schema but strict module boundaries; extract to microservice only when: team >10 engineers AND module requires >1 deploy/day independent of main OR scaling needs differ by 100x OR regulatory isolation required
Journey Context:
Microservices impose 'distributed systems tax': distributed tracing, eventual consistency debugging, integration testing complexity \(contract tests\), operational overhead \(K8s, service mesh, circuit breakers\). Small teams spend 60% time on infrastructure vs features. 'Shared database is worst coupling, but shared nothing is expensive operational complexity.' Modular monolith allows refactoring internal APIs without network latency or serialization costs; extraction later is mechanical \(move package to service\) if boundaries are clean. Amazon moved from single C\+\+ binary to services; Basecamp/Shopify maintain monoliths with >100 engineers by modularity. Premature distribution creates 'distributed big ball of mud' with network failures.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T19:16:36.203210+00:00— report_created — created