Interviewfrage für Backend-Entwickler

Du baust ein B2B-Produkt. Wie isolierst du die Daten eines Kunden von denen eines anderen?

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

Kurzantwort

Die drei Optionen sind ein gemeinsames Schema mit einer Tenant-id-Spalte, ein Schema pro Mandant und eine Datenbank pro Mandant, was operative Einfachheit gegen Isolation tauscht. Ein gemeinsames Schema skaliert am besten und kostet am wenigsten, verlangt aber, dass der Tenant-Filter strukturell durchgesetzt wird, zum Beispiel mit Row Level Security oder einer Datenschicht, die ihn immer anwendet. Eine Datenbank pro Mandant gibt die stärkste Isolation und die einfachste Wiederherstellung pro Kunde, zu echten operativen Kosten.

Warum Interviewer das fragen

Das ist eine Architekturfrage mit offensichtlichen kommerziellen Folgen: sie beeinflusst Onboarding-Kosten, Noisy Neighbors, Compliance-Zusagen und wie du die Daten eines einzelnen Kunden wiederherstellst. Der Interviewer will eine Abwägung, keinen Favoriten. Row Level Security zu erwähnen, den Migrationsaufwand über tausende Schemas und Backup und Export pro Mandant zeigt, dass du über das erste Designmeeting hinaus gedacht hast.

So baust du deine Antwort auf

  • Leg die drei Modelle entlang einer Achse aus Isolation und Kosten aus.
  • Nenn deinen Default und die Bedingungen, die ihn ändern würden.
  • Erklär, wie du die Grenze strukturell durchsetzt und nicht per Konvention.
  • Geh auf den Betrieb ein: Migrationen, Backups, Restore pro Mandant und Noisy Neighbors.

Beispielantwort

Gesprochenes Beispiel, erste Person

Mein Default ist ein gemeinsames Schema mit einer Tenant-id auf jeder Tabelle, weil es am billigsten zu betreiben ist und das Onboarding eines Kunden ein Insert statt eines Provisioning-Jobs ist. Die Gefahr liegt auf der Hand, eine fehlende where-Klausel leakt Daten zwischen Kunden, das überlasse ich also nie der Disziplin. Ich nutze Row Level Security mit dem Mandanten aus der authentifizierten Session, sodass selbst eine handgeschriebene Query nichts außerhalb des Mandanten liefert, und ich baue Tests, die absichtlich versuchen, die Zeilen eines anderen Mandanten zu lesen. Auf ein Schema oder eine Datenbank pro Mandant wechsle ich, wenn es einen echten Treiber gibt: ein Kunde mit vertraglicher Anforderung an den Datenstandort, eine Handvoll Enterprise-Accounts, die groß genug für eigene Last sind, oder ein Compliance-Regime, das nachweisbare Trennung will. Die Kosten unterschätzen Leute: eine Migration läuft jetzt über jedes Schema, Connection Pooling wird schwieriger, und du brauchst Automatisierung für Provisioning und Restore pro Mandant. Noisy Neighbors musste ich außerdem separat lösen, mit Rate Limits pro Mandant, denn Datenisolation ist keine Kapazitätsisolation.

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

  • Wie würdest du in einem gemeinsamen Schema die Daten eines Kunden aus dem Backup wiederherstellen?
  • Wie fährst du eine Schemamigration über tausende Mandanten sicher?
  • Wie verhinderst du, dass ein großer Mandant alle anderen ausbremst?

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

Ü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