Patterns / Application Architecture
Strangler Pattern
Route capability-by-capability away from a legacy system until the old core can be retired safely.
Consumers
Routing Facade
New Capability
Legacy Core
Decommission
Conceptual flow
Problem
Big-bang replacement of a business-critical legacy platform carries unacceptable delivery and operational risk.
Context
Monolithic legacy applications with entangled business logic and no realistic freeze window.
Solution
Insert a routing facade, migrate one capability at a time behind it, run comparison in parallel, then cut traffic over and decommission the corresponding legacy module.
Benefits
- Incremental risk
- Value delivered continuously
- Reversible steps
Risks
- Facade becomes permanent
- Dual-run data divergence
- Programme fatigue
Trade-offs
- Longer overall timeline for lower failure probability
When to use
- Business-critical legacy core
- No acceptable downtime
- Capability boundaries are identifiable
When not to use
- Small applications
- Legacy scheduled for retirement anyway
Related patterns
Discuss this pattern
How have you applied it — and where did it break? Bring your experience to the community.
Open the discussion