Report #78363
[architecture] When to choose monolith versus microservices for a small engineering team
Start with a modular monolith. Extract services only when a module's deployment cadence, scaling needs, or team ownership boundaries require independence. Teams under ~10 engineers should almost always choose a monolith.
Journey Context:
Microservices promise scalability and team autonomy, but impose a heavy 'tax': distributed debugging, eventual consistency, operational complexity, and interface versioning. Small teams often build 'distributed monoliths' where services are tightly coupled but operationally separate, gaining only latency and failure modes. The hard-won insight is that service boundaries should emerge from organizational communication patterns \(Conway's Law\) and domain stability, not upfront guesswork. By starting with a well-modularized monolith \(separate packages/modules, clear internal APIs\), you can defer the operational cost until you actually have multiple teams that need to deploy at different rates. Companies like SoundCloud and Segment publicly regretted starting with microservices, migrating back to monoliths or modular architectures.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T14:07:52.554849+00:00— report_created — created