liveBook · Manning

Strangler pattern

As explained in Architecture Modernization: Socio-technical alignment of software, strategy, and structure

The strangler fig pattern is a migration pattern that gradually replaces an existing system by routing increasing responsibility to a new system until the old system is no longer needed.

The strangler pattern replaces an existing architecture incrementally instead of attempting a risky, all-at-once rewrite. It supports modernization while delivering value in smaller steps. section 12.4.2

A new system initially delegates most work to the legacy system. A routing component directs each request to either the legacy monolith or a modernized subsystem; as more responsibility moves, delegation decreases until the old system is no longer needed or only limited remnants remain. section 12.4.2

Apply the pattern as an evolutionary modernization activity:

  • Chunk migration into smaller steps so value arrives sooner and incidents are less severe. section 12.4.2
  • Route requests between legacy and modernized subsystems while responsibility shifts progressively. section 12.4.2
  • Choose a migration strategy for each subsystem by weighing expected value, investment cost, and return on investment. section 12.6

SoundCloud’s migration

SoundCloud used the strangler fig pattern during an eight-year migration journey, illustrating that gradual replacement can operate across a long-lived modernization effort. section 12.4.2

Figure 12.20 Gradual system migration with the strangler fig pattern

Use the figure to visualize requests flowing through a router toward legacy or modernized subsystems as responsibility shifts over time. section 12.4.2

How Architecture Modernization: Socio-technical alignment of software, strategy, and structure covers it

How deep it goes
Explains routing, delegation, and responsibility transfer, but does not detail the additional risks it identifies.
Examples
Uses a legacy monolith, routing component, modernized subsystems, and SoundCloud’s eight-year migration as examples.
What you can do after
Apply incremental migration by routing requests between legacy functionality and newly modernized subsystems.
How it connects
Connects gradual migration with complete rewrite, bubble migration, parallel run, and subsystem modernization strategies.

Also explained in

Compare how 4 books explain strangler pattern →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Architecture Modernization: Socio-technical alignment of software, strategy, and structure. The section links point to the parts of the book it draws on.