In der letzten Lektion hat ein kleines Programm gezeigt, was ein Ereignis mit Zustand kostet: Für die Zeit, in der das Ereignis über eine verschobene Frist unterwegs war, kannte der Vertrieb die alte. Dieselbe Erscheinung kennen Sie schon länger. Das Pipeline-Board der Kladde hängt dem Schreiben nach, und seit Lektion 4.4.5 zeigt die Seite einen Hinweis, wenn noch Änderungen ausstehen. Wer auf „Gewonnen“ klickt und zurück auf das Board geleitet wird, sieht den Deal manchmal noch in der alten Stufe.
Diese Lektion gibt der Erscheinung Namen und Maße. Sie lernen zwei Sätze, die jede Diskussion über verteilte Daten früher oder später erreicht, CAP und PACELC, und lesen sie so, wie sie gemeint sind. Sie lernen die Konsistenzmodelle von stark bis eventuell und eine Zusage, die im Alltag am meisten zählt: Wer etwas geschrieben hat, sieht es auch. Azure Cosmos DB dient als greifbares Beispiel, weil es fünf Stufen zur Wahl stellt und für jede genau sagt, was sie verspricht. Am Ende legt die Kladde für jeden Datenfluss fest, welche Konsistenz er braucht, und das Board zeigt einer Person ihren eigenen Schritt, statt sie um Geduld zu bitten.
Vier frühere Lektionen tragen diese hier. Lektion 4.4.5 hat Lesemodelle mit einem Projektor gebaut, der ab einer gemerkten Position liest, und gezeigt, wie die Oberfläche anzeigt, dass ein Lesemodell nachhängt. Lektion 4.5.1 hat gezeigt, dass es zu einem Grain höchstens eine Aktivierung gibt, Lektion 4.5.3, wie das ETag den gespeicherten Zustand vor einem zweiten Schreiber schützt. Und Lektion 4.6.1 hat festgehalten, dass eine Nachricht mindestens einmal kommt.
Wo es Kopien gibt, gibt es eine Wahl
Konsistenz wird zur Frage, sobald dieselbe Information an mehr als einer Stelle steht. In der Kladde ist das öfter der Fall, als man denkt:
| Kopie | Quelle | Wie sie entsteht |
|---|---|---|
| Pipeline-Board und Prognose | Strom der Deals | Projektor, einmal je Sekunde (Lektion 4.4.5) |
| Wiedervorlage im Vertrieb | gesendetes Angebot | Ereignis QuoteSent |
| Abgabefrist in den Angeboten, wenn sie als Kopie gehalten wird | Ausschreibungen | Ereignis mit Zustand (Lektion 4.11.3) |
| Büro und Rolle einer Person | Mandanten und Entra ID | im Token, bis es erneuert wird |
| Ausschreibungen in der Kladde | TED | nächtlicher Import |
| eine Zeile auf einem lesbaren Replikat der Datenbank, falls eines genutzt wird | das schreibbare Replikat | Replikation in der Datenbank |
Jede Zeile stellt dieselben zwei Fragen: Darf jemand, der die Kopie liest, einen älteren Stand sehen als die Quelle? Und wenn ja, wie alt darf er sein, und wer bemerkt es? Die Antworten unterscheiden sich von Zeile zu Zeile, und genau das ist der Punkt dieser Lektion: Konsistenz ist keine Eigenschaft eines Systems, sondern eine Entscheidung je Datenfluss.