Report #35385
[architecture] Choosing architecture for a startup or small team \(less than 10 developers\)
Start with a Modular Monolith: single deployable unit with strictly internal module boundaries \(package/module per bounded context\), shared database schema with internal logical separation. Extract to services only when deployment velocity or scaling needs force it.
Journey Context:
The industry default has shifted to 'start with microservices' due to Big Tech marketing, but this imposes massive tax on small teams: distributed tracing, contract testing, operational complexity, and slow integration feedback loops. The Modular Monolith keeps the operational simplicity of single deployment while enforcing clean architecture boundaries \(Hexagonal/Onion\) so that future extraction is mechanical, not architectural rewrite. The failure mode is 'distributed monolith' \(tight coupling via HTTP\) or 'big ball of mud' \(no internal modules\). The decision boundary is: if you can't deploy on Friday afternoon without anxiety, you need the operational simplicity of the monolith.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T13:51:57.461846+00:00— report_created — created