How a facade shifts traffic from the old system to the new
Fowler first called it "Strangler Application" and later retitled his bliki post "Strangler Fig Application" to stress the botanical metaphor. The sources differ in scope. AWS writes about breaking up a monolith, while Fowler and Microsoft write about legacy modernization in general.
A facade (proxy) sits in front of the legacy back end and routes each request either to the legacy application or to the new services. Users keep the same interface during the migration and do not see that parts of the system have moved.
Legacy systems rarely split cleanly, so teams first identify seams where the system can be divided into replaceable parts. Then the work moves one piece at a time. Microsoft and AWS name the steps differently:
Microsoft describes four phases, and the last one removes the facade so clients call the new system directly.
AWS describes the process in three steps: transform, coexist, and eliminate.
Fowler notes that the approach needs temporary transitional architecture so the new and legacy systems can run side by side; that code is removed when modernization ends. When features still in the monolith must call migrated features, AWS recommends an anti-corruption layer that routes each call to the right new service.
When to strangle a system and when to replace it whole
AWS contrasts the pattern with a big bang migration, which moves the monolith in one operation and adds transformation risk and business disruption. The strangler fig trades that single cutover for many smaller ones.
Microsoft names the limits:
The pattern might not fit a small system that is simple to replace as a whole.
The pattern is unsuitable when requests to the back-end system cannot be intercepted and rerouted.
The facade must be designed so it does not become a single point of failure or a performance bottleneck.
For the full project around the pattern, see what website migration covers; for delivery, see legacy system migration services.
Sources
- Strangler Fig pattern - Azure Architecture CenterMicrosoft Learn · learn.microsoft.com
- Strangler Fig (bliki, 22 August 2024)Martin Fowler (originator of the term) · martinfowler.com
- Strangler fig pattern - AWS Prescriptive Guidance (Decomposing monoliths into microservices)AWS · docs.aws.amazon.com
- Strangler fig pattern - AWS Prescriptive Guidance (Cloud design patterns)AWS · docs.aws.amazon.com