Menu

Last updated: August 2026

What Does It Cost to Migrate Off a Monolith?

Migrating off a monolith typically costs $150,000–$300,000 for a moderately coupled system split into 4–6 services, and $350,000–$600,000 or more for highly coupled systems sharing a single database that need splitting into 8+ services. The majority of that cost is data decoupling — untangling a shared database into service-owned datastores — not the mechanical work of extracting service code, which is usually the smaller half of the effort.

Why is data decoupling the expensive part, not the code?

A monolith typically has one shared database where every module can query every table directly. Splitting into microservices means each service must own its data exclusively — no more direct cross-module SQL joins. Untangling those implicit dependencies requires finding every place code reaches across module boundaries into another module's tables (often undocumented), deciding which service owns each piece of data, and building APIs or event streams to replace what used to be a database join. This discovery and re-architecture work routinely consumes 50–60% of total migration budget, well before a single new service is deployed to production.

Does the number of services change the cost linearly?

No — cost grows faster than the service count because of the coordination overhead each additional service boundary introduces. Two services need one integration contract between them; six services can need up to fifteen pairwise relationships if they're not carefully bounded around business domains. This is why domain-driven design's bounded-context mapping is typically done before any extraction work begins — poorly chosen service boundaries create more cross-service chatter than the monolith had internal coupling, which drives both engineering cost and runtime latency in the wrong direction.

Is a full rewrite ever cheaper than incremental migration?

Rarely, for a system still in active production use. A full rewrite requires freezing feature development on the old system (or maintaining two systems in parallel with no incremental payoff), and it concentrates all migration risk into a single cutover event. The strangler fig pattern — extracting one service at a time while the monolith keeps running — costs somewhat more in total engineering hours due to the temporary complexity of running both architectures simultaneously, but it delivers value incrementally and avoids the catastrophic-failure risk of a big-bang cutover, which is why it's the dominant approach for any system that can't tolerate extended downtime.

Cost breakdown by migration scope

ScopeCost RangeTimeline
2-3 services, low coupling, separate data already$80,000–$150,0003–5 months
4-6 services, moderate coupling$150,000–$300,0006–10 months
8+ services, high coupling, shared database$350,000–$600,000+12–20 months, phased

When should you NOT migrate off a monolith?

If the monolith isn't actually causing measurable pain — deployment isn't blocking multiple teams, the codebase isn't preventing hiring or scaling, and performance is acceptable — migration is a large, risky, multi-hundred-thousand-dollar bet with no clear return. Microservices solve organizational scaling problems (independent team deployment, independent scaling of hot paths) more than they solve technical problems; a well-organized monolith with clean internal module boundaries often outperforms a poorly-decomposed microservices architecture on both cost and reliability.

What Code Ninety does

Code Ninety runs a domain-boundary mapping exercise before quoting any monolith migration, since service boundaries chosen incorrectly are the single largest source of cost overrun in this category of project. Code Ninety defaults to strangler-fig incremental extraction for production systems, keeping the monolith live and serving traffic throughout the migration rather than requiring a high-risk cutover window. See Code Ninety's enterprise delivery case studies. See the GCC banking consortium case study for core banking delivery in a regulated market.

Related reading