Architecture
Design Strangler Fig Pattern
The strangler fig pattern incrementally replaces a monolith with microservices by routing traffic through a facade. New features are built as microservices; existing features are migrated gradually.
- Problem â Monolith-to-migration is risky (big bang)
- Solution â Incremental migration via facade routing
- Metaphor â New services "strangle" the monolith over time
The strangler fig pattern turns a risky big-bang migration into a safe, gradual evolution.
What Is the Strangler Fig Pattern?
Migration Phases
Facade Routing
Migration Strategies
1. Branch by Abstraction
2. Parallel Run
Run both monolith and new service in parallel. Compare outputs. When the service matches the monolith, switch traffic. This provides safety through verification.
3. Event Interception
Capture events from the monolith. Feed them to new services. This allows new services to build their own data models without modifying the monolith.
Data Migration
Practice Exercises
- Design: How would you migrate the user authentication module from a monolith to a microservice using the strangler fig pattern?
- Routing: Design a facade that routes traffic based on user segments (beta users go to new service).
- Data: How do you handle database schema differences between monolith and new service during migration?
- Rollback: Design a rollback strategy if the new service fails in production.
What to Learn Next
-> Sidecar Pattern Service mesh for new services.
-> Outbox Pattern Data synchronization during migration.
-> Saga Pattern Distributed transactions in new services.
-> Sticky Sessions Session migration.
-> Circuit Breaker Resilience during migration.
-> Design Netflix Microservice architecture.