Report #88716
[architecture] Microservices vs Monolith architecture decision for startups and small teams
Start with modular monolith enforcing strict internal boundaries \(ports/adapters/hexagonal\); extract microservices only when subteams are blocked by deployment coupling or when services need independent scaling/technology stacks, not as a starting assumption
Journey Context:
Teams adopt microservices for 'clean separation' but create distributed monoliths with complex network debugging, distributed transactions, and slow integration tests. Without DevOps automation \(CI/CD, monitoring, service discovery\), microservices fail. The Modular Monolith keeps code separated \(domain-driven design bounded contexts\) but deploys as single unit, enabling refactoring before service extraction. Warning signs it's time to split: 1\) One team's deploy breaks another's code weekly, 2\) Different scaling requirements \(one CPU-bound, one memory-bound\), 3\) Need for polyglot persistence. Premature extraction creates immutable boundaries that are expensive to revert. Team Topologies suggests architecture should follow organizational communication patterns \(Conway's Law\), not dictate them.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T07:29:57.671218+00:00— report_created — created