Report #9228
[architecture] Should we start with microservices or a modular monolith for a team under 10 developers?
Build a modular monolith with strict compiler-enforced internal boundaries \(packages, modules, or ports-and-adapters\), and split into services only when a module requires independent deployment cadence, scaling, or team autonomy.
Journey Context:
Microservices impose a 'tax' of distributed systems complexity—network partitions, distributed transactions, and operational overhead—that kills velocity for small teams. The modular monolith keeps the operational simplicity of a single deployable unit while preventing the 'big ball of mud' by using package visibility rules \(e.g., Java modules, package-private, or Go internal packages\) to enforce bounded contexts. The trigger to extract a service should be organizational \(Conway's Law\) or technical \(that one endpoint needs GPU scaling, not the whole app\), not 'clean architecture' dogma.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T07:40:53.056882+00:00— report_created — created