Interviewfrage für Softwareentwickler

Erklär das CAP-Theorem und wie es auf ein System zutraf, an dem du gearbeitet hast.

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

CAP sagt, dass du dich zwischen Konsistenz und Verfügbarkeit entscheiden musst, wenn eine Netzwerkpartition deine Nodes trennt. Partitionstoleranz kannst du nicht abwählen, weil Netzwerke ausfallen, ob du damit planst oder nicht. Die eigentliche Frage ist also, was dein System während einer Partition tut: Writes ablehnen, um korrekt zu bleiben, oder sie annehmen und später abgleichen. Außerhalb einer Partition kannst du beides haben, weshalb Latenz der alltägliche Trade ist.

Warum Interviewer das fragen

Interviewer nutzen CAP, um Leute, die drei Buchstaben auswendig gelernt haben, von Leuten zu trennen, die verteilte Systeme betrieben haben. Das Signal ist zu verstehen, dass Partitionstoleranz nicht optional ist, dass die Wahl nur während einer Partition beißt, und dass du im Alltag eigentlich Latenz gegen Konsistenz tauschst. Ein konkretes Beispiel, wo du dich für ein Feature auf eine Seite geschlagen hast, macht die Antwort glaubwürdig.

So baust du deine Antwort auf

  • Sag, dass Partitionstoleranz gegeben ist und keine Wahl.
  • Rahm die eigentliche Wahl als Verhalten während einer Partition.
  • Merk an, dass du außerhalb von Partitionen Latenz tauschst und nicht Verfügbarkeit.
  • Gib je ein Feature, bei dem du dich für die eine und die andere Seite entschieden hast.

Beispielantwort

Gesprochenes Beispiel, erste Person

Mein Rahmen ist, dass Partitionstoleranz keine Wahl ist, weil Pakete verloren gehen und Switches ausfallen, egal wie meine Architektur aussieht. CAP fragt also eigentlich, was das System tut, während es geteilt ist: den Write ablehnen, damit niemand veraltete Daten liest, oder den Write annehmen und es danach in Ordnung bringen. Was mir an der PACELC-Erweiterung gefällt, ist, dass sie den Teil benennt, mit dem du täglich zu tun hast, nämlich dass du selbst bei komplett gesundem System Latenz gegen Konsistenz tauschst, weil ein Quorum-Write über Regionen hinweg Round Trips kostet. In einem Produkt, an dem ich gearbeitet habe, haben wir es pro Feature getrennt. Alles rund um Billing lief über den Primary mit einer Read-after-Write-Garantie, weil jemanden doppelt zu belasten sich nicht mit einer Entschuldigung reparieren lässt. Der Activity Feed hat von Replicas gelesen und durfte ein paar Sekunden hinterher sein, und das ist nie jemandem aufgefallen. Gleiches System, zwei Antworten, pro Feature gewählt statt als architektonische Religion.

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 es

Nachfragen, mit denen du rechnen solltest

  • Was fügt PACELC dem CAP-Theorem hinzu?
  • Wie würdest du einem User Read-after-Write-Konsistenz auf Replicas geben?
  • Was garantiert ein Quorum-Read und -Write tatsächlich?

Weitere Fragen für Softwareentwickler

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

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen