Report #79451
[architecture] Should a small startup team \(<10 developers\) build microservices to ensure future scalability?
Start with a modular monolith \(single deployable unit with strict internal module boundaries\) and extract services only when deployment coupling or team autonomy becomes a bottleneck; avoid distributed systems overhead until you have at least two pizza teams \(8-10 people\) per service domain.
Journey Context:
The 'microservices premium' includes distributed tracing, contract testing, eventual consistency debugging, and complex local development environments \(Docker Compose orchestration\) that drastically slow feature velocity for small teams. A modular monolith enforces clean architecture \(ports/adapters, bounded contexts\) using compiler/linker constraints rather than network boundaries, allowing aggressive refactoring without HTTP/API versioning headaches or distributed transaction sagas. The trigger to extract a service should be organizational \(a different sub-team needs independent deploy cadence\) or technical \(one module needs GPU resources others don't\), not 'clean architecture' purity. Common errors include creating a 'distributed ball of mud' where services call each other in cyclic HTTP dependencies, or premature extraction leading to the shared database anti-pattern because cross-service transactions are too hard to implement correctly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T15:57:29.303881+00:00— report_created — created