A proxy intercepts requests bound for the legacy system and routes each one to either the old system or its new replacement; clients keep the same interface and stay unaware that a migration is in progress
Strangler Fig
Details
- Full Name
-
Strangler Fig Application
- Also known as
-
Strangler Fig pattern, Strangler Application (original 2004 title, later renamed by Fowler)
Core Concepts:
- Routing facade
-
A proxy intercepts requests bound for the legacy system and routes each one to either the old system or its new replacement; clients keep the same interface and stay unaware that a migration is in progress
- Incremental replacement
-
Functionality is migrated piece by piece rather than in a single big-bang rewrite; the new system grows around the old one until the legacy host can be decommissioned
- Botanical metaphor
-
Named after the strangler fig vine that germinates in a host tree, sends roots to the ground, and gradually envelops the host until it stands self-supporting in its place — the new system "strangles" the legacy
- Event interception
-
Intercepting the events or calls that flow into the legacy system so new behaviour can be layered in and routed away from the old code
- Asset capture
-
Progressively taking ownership of the data and capabilities ("assets") that the legacy system holds, moving each into the new system as it is replaced
- Transitional architecture
-
The facade and any anti-corruption layers are scaffolding meant to be torn down once migration completes; both systems coexist and may share data stores during the transition
- Avoids big-bang rewrite
-
Reduces risk by keeping the legacy system live and rolling back-able throughout, instead of betting on a single cutover
- Key Proponent
-
Martin Fowler (StranglerFigApplication, 2004)
When to Use:
-
Modernizing a large, complex, or legacy monolith where a full rewrite would be too risky
-
Decomposing a monolith into microservices by extracting one capability or domain at a time
-
When the original system can keep running for an extended period during migration
-
When requests to the back-end can be intercepted and the legacy source can be modified to redirect calls
Related Anchors:
Criticism:
-
Microsoft, Azure Architecture Center — Strangler Fig pattern (2026) — warns that the facade must keep pace with the migration and must not become a single point of failure or performance bottleneck, and that both systems sharing data stores requires careful concurrent access; recommends an Anti-corruption Layer for cross-system calls
-
Amazon Web Services, Decomposing monoliths into microservices — Strangler fig pattern — notes the legacy and modernized systems "live together for a period of time," which imposes dual-maintenance cost; the pattern is unsuitable when requests cannot be intercepted, the legacy source is inaccessible, or the system must be fully decommissioned quickly
Current Status:
-
Widely adopted in cloud-modernization guidance beyond Fowler’s original essay: documented as a first-class pattern by both the Microsoft Azure Architecture Center and AWS Prescriptive Guidance, typically framed as monolith-to-microservices decomposition
-
Naming drift: Fowler originally titled it "Strangler Application" and later renamed it "Strangler Fig Application" to restore the botanical metaphor (Original Strangler Fig Application); training-data priors may still surface the older "Strangler" / "Strangler Application" label