Report #12716
[architecture] Deciding between microservices and monolith for a startup with fewer than 10 engineers
Start with a modular monolith: deploy a single unit but enforce strict internal module boundaries \(no direct DB access across modules, use internal APIs or events\); extract a service only when a module requires independent scaling or a different technology stack, and only when you have the operational capacity \(monitoring, CI/CD\) for more than three services.
Journey Context:
Teams confuse 'microservices' with 'good architecture,' ignoring that distributed systems amplify complexity. Network partitions, eventual consistency, and deployment coordination become the bottleneck instead of product development. A modular monolith allows refactoring internal boundaries without network latency or versioning hell. The common anti-pattern is the 'distributed monolith': tightly coupled services that must deploy together, combining the worst of both worlds \(network overhead \+ lockstep releases\). Wait until the pain of the monolith \(deployment frequency blocked by one slow module, or scaling needs\) outweighs the cost of distribution. Operational capacity is the real constraint: if you cannot monitor, trace, and independently deploy a service, you are not ready for it.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T16:47:02.996613+00:00— report_created — created