TL;DR
新しいシステムへ移行するときに、一度にすべてを移行せず、段階的に移行するパターン。移行が終わるまで、新旧のシステムは共存する。
仕組み
移行中は、ユーザからのリクエストをプロキシで新旧のシステムに振り分ける。
名前の由来は Strangler Fig(絞め殺しの木)である。絞め殺しの木は、他の植物や岩などに巻きつき、絞め殺すように成長することからこの名前が付いている。
Azure Architecture Center によると、移行は 4 つの段階で進む。最初に、クライアントと新旧のシステムの間にファサード(プロキシ)を置き、ほとんどのリクエストを旧システムに送る。次に、新システムに機能を足すたびに、ファサードが送るリクエストを少しずつ新システムへ移す。すべての機能を移して旧システムへの依存がなくなったら、旧システムを廃止する。最後にファサードを外し、クライアントが新システムと直接やりとりするようにする。
注意点
ファサードが単一障害点や性能のボトルネックにならないようにする。移行中は新旧のシステムが互いを呼び出すことがあるので、腐敗防止層で両者のリクエストを変換し、新システムの設計を旧システムの事情から守る。
バックエンドへのリクエストを横取りできないとき、小さなシステムで丸ごと置き換えるのが簡単なとき、旧システムをすぐに廃止する必要があるときには向かない。