Report #94889
[architecture] Should a small team start with microservices or a monolith
Start with a modular monolith \(strict internal module boundaries\) until team size or deployment velocity pain justifies service extraction; never start with microservices for teams under 10 developers or unproven product-market fit. Enforce module boundaries via compiler/package visibility, not just conventions.
Journey Context:
Microservices trade development velocity for operational complexity \(distributed tracing, eventual consistency, deployment matrices, circuit breakers\). Small teams lack the DevOps bandwidth to handle service meshes and multi-service debugging. The 'monolith-first' approach \(pioneered by Monzo, SoundCloud retrofits\) lets you define bounded contexts in code \(Java packages, Go modules, Python namespace packages\) that can be later extracted via an anticorruption layer. The pain point for extraction is usually deployment velocity \(one team can't ship without another's coordination\) or scaling needs \(one component needs different hardware/language\). Until then, modular monolith gives you ACID transactions, easy refactoring, and single-binary deploys while preserving the ability to split later.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T17:51:07.801174+00:00— report_created — created