Report #17391
[architecture] Deciding between microservices and monolithic architecture for a small team
Start with a modular monolith for teams under ~10 engineers, splitting into services only when a module has independent deployment cadence, conflicting scaling requirements \(e.g., CPU-intensive vs. memory-intensive\), or clear team ownership boundaries \(Conway's Law\). Enforce strict internal module boundaries \(clean architecture/ports-adapters\) to enable future extraction without distributed system complexity.
Journey Context:
Microservices impose massive tax: distributed tracing, eventual consistency, deployment orchestration, and integration testing complexity. Small teams spend more time on infrastructure than features. The 'monolith first' approach allows rapid iteration and easy refactoring when domains are unclear. A 'modular monolith' with strict internal APIs \(package-by-feature, no cyclic dependencies, internal REST/ gRPC boundaries\) gives 80% of microservice benefits \(team autonomy, clear boundaries\) with 20% of the ops cost. Only extract when the cost of coordination exceeds the cost of distribution \(usually at team size >10 or scale requirements diverge\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T05:16:51.199680+00:00— report_created — created