Migrating Monoliths: Implementing the Strangler Fig Pattern

The Risk of Big-Bang Rewrites

Rewriting a large monolithic system from scratch is highly risky. Big-bang migrations often suffer from scope creep, missed logic, and deployment failures.

Case Study: The Failed Service Cutover

A company spent a year rewriting their portal. During cutover, the new system collapsed under traffic due to differences in data schemas and unexpected user flows, forcing a complete rollback.

The Bug: Shared Database Coupling

The developers built microservices but allowed them to directly query the monolith’s SQL database. This created database lock locks and high latency, defeating the purpose of service isolation.

The Fix: The Strangler Fig Pattern

We migrated the monolith using the Strangler Fig pattern. We introduced an API Gateway (like Kong or Nginx) in front of the services, routing specific paths to microservices while keeping the rest directed to the monolith:

# Example routing configuration
- Route /api/v1/auth   -> Monolith
- Route /api/v1/orders -> New Order Microservice (Strangled domain)

Over time, more routes were moved to new microservices until the monolith was completely replaced without a single day of service interruption.

Scroll to Top