Report #16104
[architecture] Premature microservices causing deployment complexity and cross-team blocking
Start with a modular monolith enforcing strict internal boundaries \(ports/adapters or clean architecture\) until team size exceeds 8-10 developers or specific subsystems require independent scaling. Extract services only when deployment coupling causes actual velocity pain, not anticipated future scale.
Journey Context:
Microservices solve problems of organizational scale and independent deployability, but introduce network latency, distributed debugging complexity, and operational overhead \(observability, circuit breakers, eventual consistency\). Conway's Law dictates that system architecture mirrors communication structure; small teams \(< 10\) pay the cost of distributed systems without gaining organizational independence. A modular monolith with strict internal boundaries \(hexagonal architecture\) allows refactoring without network calls and enables extraction later when team boundaries or scaling requirements actually demand it. Premature extraction creates 'distributed big ball of mud' where you pay network costs without isolation benefits. The threshold is usually 2-pizza teams \(6-10 people\) owning distinct business capabilities with different scaling profiles.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T01:50:27.574542+00:00— report_created — created