Nutz das Strangler-Pattern: setz eine Fassade vor die Fähigkeit, bau den neuen Service dahinter und verschieb den Traffic schrittweise mit einem Feature Flag, während der Monolith der Fallback bleibt. Die Daten trennst du zuletzt, meistens über Dual Writes und Backfill, bis der neue Store führend ist, und du hältst eine Verifikationsphase, in der beide Pfade laufen und Ergebnisse verglichen werden, bevor der alte Code gelöscht wird.
Warum Interviewer das fragen
Das testet Migrationsurteil, und das ist ein Großteil der Senior-Backend-Arbeit. Der Interviewer will schrittweises Vorgehen mit Rollback in jeder Phase, das Bewusstsein, dass die Datentrennung schwerer ist als die Codetrennung, und eine Definition of Done, die das Löschen des alten Pfads einschließt. Kandidaten, die ein Rewrite und ein Cutover-Wochenende beschreiben, erzählen dir gerade, wie der Incident entstanden ist.
So baust du deine Antwort auf
- Fang mit einer Naht an: leite Aufrufe über eine Fassade oder ein Interface.
- Verschieb Traffic schrittweise hinter einem Flag und halt Rollback billig.
- Behandel die Datentrennung explizit mit Dual Writes und Backfill.
- Definier Fertig als alter Pfad entfernt, mit Verifikation davor.
Beispielantwort
Zuerst würde ich eine Naht schaffen. Selbst innerhalb des Monolithen laufen alle Aufrufer dieser Fähigkeit über ein Interface, was oft ein Refactoring ist, das sich für sich lohnt, weil es zeigt, wie verheddert die Grenze wirklich ist. Dann implementiert der neue Service denselben Vertrag, und die Fassade leitet hinter einem Flag einen kleinen Prozentsatz des Traffics dorthin, beginnend mit Lesezugriffen, wo eine falsche Antwort billig ist. Ich lasse beide eine Weile im Shadow Mode laufen, schicke denselben Request an beide und vergleiche die Antworten, denn das fängt die Edge Cases, die niemand dokumentiert hat. Die Daten sind der harte Teil: ich schreibe doppelt, backfille die Historie, gleiche ab und mache erst dann den neuen Store führend, wobei der Monolith aus dem Service liest statt aus den gemeinsamen Tabellen. Jeder Schritt hat als Rollback das Umlegen eines Flags. Und die Migration ist nicht fertig, bevor der alte Code und seine Tabellen gelöscht sind; ich habe Strangler-Migrationen bei neunzig Prozent hängen sehen, was zwei Systeme zur Pflege über Jahre hinterlässt, und das ist schlimmer als jede der beiden Optionen allein.
Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.
So funktioniert esNachfragen, mit denen du rechnen solltest
- Wie würdest du mit einer Transaktion umgehen, die über die alte Grenze hinweg lief?
- Wie vergleichst du Ergebnisse im Shadow Mode, ohne Seiteneffekte zu verdoppeln?
- Was würde dich veranlassen, aufzuhören und die ganze Migration zurückzurollen?
Weitere Fragen für Backend-Entwickler
Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.
Meine Fragen vorhersagen