Report #36479
[architecture] Architecture decision for a startup team under 10 engineers
Start with a modular monolith enforcing strict internal package/module boundaries; extract microservices only when deployment cadence conflicts or specific components need independent scaling, not for 'clean architecture' or domain purity.
Journey Context:
Microservices impose a 'distributed systems tax' that includes network partitions, observability complexity, eventual consistency debugging, and operational overhead for multiple deployment pipelines. Small teams cannot afford this tax because they lack the platform engineering resources to manage service meshes, distributed tracing, and circuit breakers. The 'modular monolith' \(or 'modulith'\) keeps the operational simplicity of a single deployable while enforcing bounded contexts through package structures that prevent import tangling. The extraction decision should be driven by the 'Conway's Law' inverse: only when the organizational need for independent deployment velocity outweighs the operational complexity. Martin Fowler's 'Monolith First' and Sam Newman's 'Monolith to Microservices' both validate this trajectory.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T15:42:24.970848+00:00— report_created — created