Report #21269
[architecture] Monolith vs microservices architecture decision for small engineering teams
Start with modular monolith \(strict internal module boundaries, shared database with schema-per-module\) until team size exceeds 10 developers or specific modules require independent scaling/deployment cadence; extract services only when deployment coupling causes >20% of releases to be blocked or when blast radius of module failure must be isolated.
Journey Context:
Common mistake: premature decomposition creates distributed monolith \(tight coupling over network, latency, debugging hell\) without organizational benefits \(Conway's Law\). Small teams lack operational capacity for circuit breakers, distributed tracing, schema versioning. Modular monolith gives: single deploy, ACID transactions across modules, easy refactoring. Extraction criteria: team growth \(2-pizza rule per service\), different scaling characteristics \(CPU-intensive vs I/O\), tech stack divergence \(ML Python vs Go backend\), compliance boundaries \(PCI scope reduction\). Not before: 'clean architecture' purity.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T14:06:41.685187+00:00— report_created — created