Migrating a Monolith to Microservices
Decompose a monolithic application into services to improve team autonomy, scalability, and deployment speed.
The full NCT chain
“Our monolithic application has reached the point where every deployment is a risk. A change to billing can break notifications. The test suite takes 45 minutes and fails intermittently. Three teams are stepping on each other's code in a single repo. Deployment frequency has dropped from daily to weekly because nobody trusts the system. If we decompose the two most coupled domains into independent services, we restore team autonomy, cut deployment risk, and set the foundation for scaling the engineering org from 15 to 40 engineers.”
Extract the billing domain into an independent service with its own database and deployment pipeline
- Map all billing domain boundaries and dependencies
- Design billing service API contracts
- Set up service infrastructure (DB, CI/CD, monitoring)
- Implement billing service with API-first approach
- Build adapter layer in monolith to call billing service
- Run parallel testing: monolith vs. service
Extract the notification system into a separate service with event-driven architecture
- Document all notification triggers and templates
- Design event bus integration for notification triggers
- Build notification service with queue-based processing
- Migrate notification templates to the new service
- Implement fallback and retry logic
Establish a service decomposition playbook so future extractions follow a repeatable process
- Document the patterns used in billing and notification extraction
- Create a service template with standard tooling (CI, monitoring, logging)
- Write a decision framework for 'when to extract a service'
- Present playbook to engineering org and gather feedback
When to use this
Context
Use this NCT when your monolith is slowing down multiple teams, deployments feel risky, and you're planning to scale the engineering org. Start with the two most independently deployable domains rather than attempting a full rewrite.
Analysis
Why this NCT works
The Narrative connects architecture to business impact — team autonomy, deployment confidence, and scaling headcount. It avoids the trap of 'microservices for microservices' sake.' The third Commitment (the playbook) ensures this isn't a one-off extraction but the beginning of a sustainable decomposition strategy.
Related examples
Reducing CI Pipeline Time
Cut CI build times from 18 minutes to under 5 minutes to restore developer flow and increase shipping frequency.
Infrastructure & PlatformBuilding an Observability Stack
Implement structured logging, metrics, and alerting to reduce incident response time and improve system reliability.
Infrastructure & PlatformAchieving SOC 2 Compliance
Complete SOC 2 Type II certification to unblock enterprise sales and reduce security questionnaire burden.
See how these teams use NCT
Ready to build your own NCT?
Start with a Narrative. Add Commitments. Break them into Tasks. Free forever to start.
Free forever. No credit card needed.