Report #46049
[architecture] Should a small startup use microservices or a modular monolith?
Start with a modular monolith \(single deployable unit with strict internal package/module boundaries\) until the team exceeds ~10 developers or a specific module requires independent scaling/tech stacks; extract services only when deployment coupling actually hinders velocity.
Journey Context:
Microservices trade code complexity for operational complexity \(N CI/CD pipelines, distributed tracing, eventual consistency, schema evolution\). Teams <10 lack the DevOps bandwidth to manage N databases and networks. A modular monolith enforces boundaries via code \(internal APIs/packages\) not network, allowing 'monolith-first' extraction later \(the 'evolutionary architecture' pattern\). Premature extraction creates 'microliths'—distributed monoliths with HTTP calls that are tightly coupled anyway. The right trigger for extraction is when teams trip over each other's deploys \(Conway's Law\) or one module needs Elixir while the rest needs Python.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T07:46:03.596835+00:00— report_created — created