Report #104282
[architecture] Should a small team start with microservices or a monolith?
Start with a modular monolith. Extract services only when clear bounded contexts emerge and you need independent deployability or scaling. A monolithic codebase organized by domain \(modules/packages\) avoids distributed system complexity while allowing future extraction. Do not start with microservices unless your team already has deep experience in distributed systems.
Journey Context:
The common mistake is believing microservices are a silver bullet for small teams. They impose operational overhead \(service discovery, distributed tracing, eventual consistency, network latency\). Martin Fowler's 'MonolithFirst' advice \(https://martinfowler.com/bliki/MonolithFirst.html\) is based on the observation that most successful microservice projects were extracted from a working monolith. The tradeoff is simplicity now vs. flexibility later. With a modular monolith, you can still define strict service boundaries and interfaces, and later split them out using tools like Docker or message queues. For a team of 2-5 developers, the cognitive load of a distributed system usually outweighs the benefits of independent deployability. Start monolithic, extract when you feel the pain of deployment coupling.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-26T20:03:57.819489+00:00— report_created — created