Scaling CRM from MVP to 30k Users
A decision log on architecture trade-offs, query strategy, and release safety.
Context
A sales CRM expanding from one region into multi-team operations.
Challenge
Feature velocity dropped due to schema coupling and expensive reporting queries.
Approach
Introduced bounded modules, read models, and phased migration with rollback paths.
Solution
Decoupled core write paths, moved heavy reporting to dedicated query pipelines.
Outcome
Query latency and incident volume decreased while release confidence increased.
Lessons
- Optimize for ownership boundaries first.
- Treat migration safety as a product requirement.