Report #104675
[architecture] Monolith vs microservices for a small team \(fewer than 8 engineers\)
Start with a modular monolith. Enforce strict internal boundaries via packages/modules and shared interfaces. Extract a service only when you have proven coupling pain \(not anticipated\) and clear ownership boundaries. Do not adopt microservices until you have >50k LOC, multiple teams, or a concrete scaling bottleneck that cannot be solved with database query optimization or caching.
Journey Context:
Most small teams prematurely split into services, introducing network overhead, distributed debugging hell, and deployment complexity. The modular monolith keeps developer velocity high, allows single-transaction ACID guarantees, and is easier to refactor. The true cost of microservices is not the code but the operational burden: service discovery, tracing, eventual consistency, and contract versioning. Only extract when you need independent deployability for scaling or team autonomy. Avoid 'distributed monolith' anti-pattern by enforcing strict API contracts and banning shared databases between services.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-09-27T20:05:44.126733+00:00— report_created — created