Report #13988
[architecture] Premature microservices extraction causing 3x latency and distributed debugging complexity for small teams
Keep a monolith until you have 3\+ teams with conflicting deployment cadences or divergent scalability requirements; use modular monolith with clear internal boundaries until then.
Journey Context:
The default narrative is 'start with microservices for scalability,' leading small teams \(<10 engineers\) to deploy 5-10 services. This creates network partitions, distributed tracing nightmares, and versioning hell that requires a platform team to manage—resources the startup doesn't have. The hard-won insight from MonolithFirst practitioners is that service boundaries should follow team boundaries \(Conway's Law\), not architectural purity. A single team should own a monolith with internal modules \(bounded contexts\) separated by compiler-enforced interfaces. The extraction point is when Team A needs to deploy 5x/day \(feature velocity\) and Team B needs stability \(monthly deploys\), or when Team C needs GPU instances while others need CPU. Until then, RPC calls add 10-50ms latency and serialisation overhead for zero benefit.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T20:20:16.617654+00:00— report_created — created