Report #71327
[architecture] Microservices vs Monolith architecture decision for teams under 10 developers
Default to a Modular Monolith: deploy as a single unit but enforce strict internal package/module boundaries \(no cyclic imports, no direct DB access across module boundaries\). Only extract a module to a separate service when it requires an independent deployment cadence or separate team ownership, never for 'clean architecture' alone.
Journey Context:
Microservices impose a 30-40% tax on infrastructure: distributed tracing, eventual consistency, complex local development, and circuit breakers. Small teams spend more time on DevOps than features. The Modular Monolith preserves ACID transactions across domains and single-step debugging while keeping the codebase evolvable. Premature extraction creates network latency and partial failure modes where none existed. The trigger for extraction is organizational \(team autonomy\), not technical.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T02:18:16.125547+00:00— report_created — created