Mach den Vertrag maschinell prüfbar. Halt ein Schema vor, ein OpenAPI-Dokument oder protobuf-Definitionen, generiert aus dem Code oder gegen ihn validiert, und fahr in der CI eine Kompatibilitätsprüfung, die bei einer Breaking Change wie einem entfernten Feld oder einem verschärften Typ fehlschlägt. Ergänz Consumer Driven Contract Tests für interne Clients, und versionier Events genauso wie Endpoints.
Warum Interviewer das fragen
Der Interviewer will wissen, ob Kompatibilität durch Tooling durchgesetzt wird oder durch die Hoffnung, dass es jemandem auffällt. Er achtet auf ein Schema in der Versionsverwaltung, ein automatisiertes Diff-Gate, und darauf, wie du Message Payloads genauso abdeckst wie HTTP. Es berührt außerdem die organisatorische Realität: wie du herausfindest, wer einen Endpoint tatsächlich nutzt, bevor du ihn änderst.
So baust du deine Antwort auf
- Leg den Vertrag in die Versionsverwaltung und halt ihn synchron mit dem Code.
- Ergänz ein automatisiertes Kompatibilitäts-Diff als CI-Gate.
- Deck interne Konsumenten mit Contract Tests ab.
- Erklär, wie du echte Konsumenten findest, bevor du irgendetwas änderst.
Beispielantwort
Der Vertrag muss eine Datei sein, die die CI vergleichen kann, sonst hängt Kompatibilität an dem, der den Pull Request reviewt. Das OpenAPI-Dokument liegt also im Repository und wird aus den Handlern generiert, damit es nicht in die Fiktion abdriftet, und es gibt einen Job, der es gegen die Version auf dem Main-Branch diffed und bei allem Brechenden fehlschlägt: ein entferntes Feld, ein neuer Pflichtparameter, ein verengter Typ. Hinzufügen ist immer erlaubt. Für interne Konsumenten mag ich Consumer Driven Contracts, bei denen jeder Client die Teilmenge veröffentlicht, auf die er sich wirklich verlässt, und mein Build verifiziert, dass ich sie alle noch erfülle, ich erfahre es also zur Buildzeit und nicht von deren Bereitschaft. Events bekommen dieselbe Behandlung über eine Schema Registry mit gesetztem Kompatibilitätsmodus, denn ein kaputtes Event-Payload ist schlimmer als ein kaputter Endpoint, weil Konsumenten asynchron scheitern. Und bevor ich etwas ändere, schaue ich in die Request-Metriken pro Client, denn der Vertrag sagt mir, was möglich ist, und die Metriken sagen mir, wer es tatsächlich merken würde.
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
- Was gilt in einer JSON-Antwort als Breaking Change?
- Wie würdest du mit einem Client umgehen, der sich auf undokumentiertes Verhalten verlässt?
- Wie managst du Schema-Evolution für Events über Jahre?
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