Report #102901
[architecture] Monolith vs services for a small team building a new product
Start with a modular monolith: a single deployable unit with clearly separated internal modules \(e.g., bounded contexts\). Extract services only when a module has clear scaling or team ownership boundaries.
Journey Context:
The common mistake is premature microservice adoption, which adds operational complexity \(network latency, distributed transactions, service discovery\) that kills velocity for small teams. A modular monolith gives you the same code organization without the overhead. The tradeoff: a monolith forces a single deploy schedule and language stack, but for <5 person teams, this is a feature, not a bug. The right call: enforce module boundaries via interfaces and dependency inversion. When a module consistently needs independent scaling or a different team owns it, extract it as a service. This is the advice from Martin Fowler and the 'Monolith First' pattern.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-09T15:52:15.966229+00:00— report_created — created