Report #68655
[architecture] Should a 3-person startup use microservices or a modular monolith?
Start with a modular monolith enforcing strict compile-time boundaries \(package-by-feature, internal APIs\) and extract to services only when deployment cadence differs between modules or teams scale >8-10 people. Never split by technical layer \(frontend/backend\), always by business capability.
Journey Context:
Microservices for small teams create network latency, distributed debugging hell, and operational overhead \(observability, service mesh\) that kills velocity. The 'Inverse Conway Maneuver' \(organizing teams around services\) only works when you have multiple teams with different deployment schedules. Instead, use a modular monolith: compile-time boundaries \(internal modules/packages\) with clear interfaces that could become RPC boundaries later. This preserves the ability to refactor across modules \(hard in microservices\) while maintaining separation of concerns. Extract to microservices only when: \(1\) different scaling requirements \(one needs GPU, others CPU\), \(2\) different deployment cadences \(one changes hourly, others monthly\), or \(3\) organizational boundaries \(different teams need autonomy\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T21:43:16.737957+00:00— report_created — created