Report #10798
[architecture] Microservices vs monolith for a startup or small team \(<10 developers\)
Start with a modular monolith \(strict internal module boundaries, shared DB schema per module\) and split into services only when a module requires independent deployment cadence or scaling. Never split before you have 3\+ teams, because the network latency, distributed debugging, and schema migration coordination cost will exceed any benefit.
Journey Context:
Small teams choose microservices for 'clean architecture,' but they inherit distributed systems complexity \(network failures, eventual consistency, distributed transactions\) without the team size to manage it. A modular monolith enforces boundaries \(e.g., Java modules, Go packages, strict import rules\) allowing code reuse and atomic refactors while avoiding network hops. Split only when deployment coupling hurts \(e.g., mobile team needs daily shipping while backend ships weekly\) or when scale requires independent resource allocation. The 'Monolith First' pattern defers YAGNI.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T11:43:36.074168+00:00— report_created — created