← All examplesInfrastructure & Platform

Migrating a Monolith to Microservices

Decompose a monolithic application into services to improve team autonomy, scalability, and deployment speed.

microservicesarchitecturescalabilitytechnical debt

The full NCT chain

NNarrative

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.

CCommitment 1

Extract the billing domain into an independent service with its own database and deployment pipeline

TTasks
  • 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
CCommitment 2

Extract the notification system into a separate service with event-driven architecture

TTasks
  • 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
CCommitment 3

Establish a service decomposition playbook so future extractions follow a repeatable process

TTasks
  • 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.

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.