70 % aller Legacy-Migrationen scheitern. Nicht weil die neue Software schlecht ist — sondern weil der Wechsel selbst gemanagt werden muss, während das alte System weiter Geld verdient. Strangler Fig ist die Antwort auf dieses Dilemma.
Warum Big Bang scheitert
Big-Bang-Migration heißt: neues System bauen, Stichtag setzen, altes System abschalten. Klingt sauber. Funktioniert in der Realität fast nie, weil drei Dinge gleichzeitig passieren müssen:
Tag 0 altes System ●●●●●●●●●● läuft Tag 1 neues System ●●○○○○○○○○ edge-cases Tag 1 Mitarbeiter ✗✗✗✗○○○○○○ überfordert Tag 1 Daten ●●●●●○○○○○ Inkonsistenzen
Wenn nur eines davon kippt, kippt das ganze Projekt. Der Druck, alles am Stichtag richtig zu haben, ist so groß, dass Teams Abkürzungen nehmen — die später als technische Schulden zurückkommen.
Was Strangler Fig ist
Das Pattern stammt von Martin Fowler (2004) und ist nach einer Pflanze benannt: die Würgefeige wächst um einen Wirtsbaum, schluckt ihn allmählich, und am Ende steht nur noch die Feige. Der Wirtsbaum verschwindet still.
Für Software heißt das: das neue System wächst um das alte herum. Funktionen werden eine nach der anderen abgelöst. Das Alte läuft so lange weiter, bis es nichts mehr zu tun hat — und wird dann abgeschaltet.
Monat 0 Legacy ████████████ neu ░░░░░░░░░░░░ Monat 2 Legacy █████████░░░ neu ░░░███░░░░░░ Monat 4 Legacy ██████░░░░░░ neu ░░░░░░██████ Monat 6 Legacy ███░░░░░░░░░ neu ░░░░░██████░ Monat 8 Legacy ░░░░░░░░░░░░ neu ████████████
Drei Phasen
In der Praxis läuft das in drei Phasen, die sich pro Modul wiederholen. Wir nennen sie intern Catch, Mirror, Cut.
1
/ Phase 1
Catch
Was: Einen Façade-Layer vor das Legacy-System setzen.
Warum: Alle Reads und Writes laufen ab jetzt über die Façade. Das alte System ändert sich nicht — es ist nur noch über die Façade erreichbar.
Wie: Reverse-Proxy, API-Gateway oder eine dünne Library, die alle Aufrufe abfängt.
2
/ Phase 2
Mirror
Was: Das neue System parallel bauen und alle Writes mitspiegeln.
Warum: Reads kommen weiter aus Legacy. Writes gehen an beide Systeme. Sie können das neue System gegen Real-Daten testen, ohne dass es produktiv ist.
Wie: Dual-Write-Pattern. Beide Systeme bekommen jeden Schreibvorgang. Diffs werden geloggt und verglichen.
3
/ Phase 3
Cut
Was: Reads modulweise auf das neue System umstellen.
Warum: Sobald ein Modul im neuen System verifiziert ist (durch das Mirror), schalten Sie den Read um. Das alte Modul wird nicht mehr aufgerufen — kann abgeschaltet werden.
Wie: Feature-Flag pro Modul. Ein Klick schaltet zurück, wenn etwas klemmt.
Wann das Pattern nicht passt
Strangler Fig ist nicht universell. Es gibt Szenarien, in denen ein Big-Bang oder eine komplette Neuentwicklung die bessere Wahl ist:
Drei häufige Fehler
Façade als reines Pass-Through bauen
Wenn die Façade einfach nur weiterleitet, gewinnen Sie nichts. Die Façade muss aktiv Geschäftslogik kennen — sonst kann sie keine Cuts machen.
Dual-Write ohne Idempotenz
Wenn die zwei Systeme aus dem Sync laufen (Netzwerkfehler beim Schreiben), müssen Sie automatisch nachziehen. Idempotenz-Keys pro Schreibvorgang sind Pflicht. Ohne sie ist Dual-Write fragiler als Single-Write.
Cut ohne Mirror-Verifikation
Wenn Sie umschalten, ohne dass Sie wochenlang die Diffs zwischen Legacy und Neu beobachtet haben, ist Cut Russisches Roulette. Mindestens 2 Wochen Mirror-Phase pro Modul — das ist die teuerste Phase, aber sie rechtfertigt sich beim ersten verhinderten Datenverlust.
Glossar
- Façade
- Zwischenschicht, die alle Aufrufe ans Legacy-System abfängt und an das richtige Backend weiterleitet.
- Dual-Write
- Schreibvorgänge gehen gleichzeitig an Legacy und Neu. Reads kommen weiter aus Legacy, bis das Neu-System verifiziert ist.
- CDC
- Change Data Capture. Datenänderungen werden aus dem Datenbank-Log extrahiert und in ein neues System eingespielt — ohne dass die Anwendung etwas merkt.
- Feature-Flag
- Ein-/Aus-Schalter pro Funktion, der zur Laufzeit umgelegt werden kann. Macht Cuts trivial und Rollbacks ungefährlich.
Wenn Sie gerade vor einer Legacy-Migration stehen und sich fragen, ob Strangler Fig in Ihrem Fall passt — wir prüfen das in 30 Minuten kostenlos.
Erstanalyse anfragen