Report #56184
[architecture] Monolith vs microservices architecture decision for teams under 10 engineers
Start with a modular monolith—enforce strict internal module boundaries \(domain-driven design bounded contexts\) that communicate via internal APIs, but deploy as a single unit. Extract to services only when a module requires independent scaling or team size exceeds ~10 engineers.
Journey Context:
The industry has overcorrected from monoliths to microservices due to 'resume-driven development' and Big Tech marketing. Amazon and Shopify both started as monoliths. Distributed systems introduce network latency, partial failures, deployment complexity, and require sophisticated observability. For small teams, these costs outweigh the benefits of independent deployability. The 'modular monolith' pattern—clear internal boundaries with explicit interfaces—allows eventual extraction without premature operational burden. Extract a service only when a module has conflicting scaling characteristics \(e.g., CPU-intensive vs. memory-intensive\) or when organizational growth demands separate team ownership.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T00:47:48.166825+00:00— report_created — created