Report #14305
[architecture] Should a small team \(2-8 developers\) start with microservices or a modular monolith?
Start with a modular monolith: one deployable unit with strict internal module boundaries \(packages/namespaces enforcing DDD bounded contexts\). Extract to services only when a module needs independent scaling, a different technology stack, or team autonomy pain exceeds coordination cost.
Journey Context:
Microservices for small teams create 'distributed monoliths' - all the pain of network partitions \(distributed transactions, eventual consistency, debugging\) without the scaling benefits. The evolutionary architecture pattern: use compiler/package visibility \(Java modules, Rust workspaces, Go internal packages\) to enforce boundaries within one binary. When Service A needs to deploy 10x/day and Service B monthly, that's the signal to split.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T21:14:47.852214+00:00— report_created — created