Report #104346
[architecture] Monolith or microservices for a small team \(<5 engineers\)?
Start with a modular monolith. Split code into strict bounded-context modules \(e.g., separate directories/namespaces for billing, users, orders\) with internal APIs, but deploy as one artifact. Only extract services when you hit a concrete scaling bottleneck — either team size \(need independent deploys\) or resource contention \(a module needs its own database\).
Journey Context:
The trap: premature microservices add massive operational overhead \(service discovery, distributed tracing, eventual consistency\) that kills small-team velocity. A modular monolith gives you the same logical separation without the network cost. When you do extract, the internal module boundaries become natural service boundaries. Real example: Shopify ran a monolithic Rails app for years with hundreds of engineers before extracting services. The cost of splitting is always higher than expected — every internal function call becomes an RPC with serialization, retries, and failure modes.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-08-02T20:06:21.205664+00:00— report_created — created