CRDTs: konfliktfrei replizierte Datentypen
Kurz: CRDTs sind Datenstrukturen, die man an mehreren Orten gleichzeitig ändern kann und die sich beim Zusammenführen immer automatisch ohne Konflikt auf denselben Wert einigen.
Genauer: Ihre Merge-Operation ist kommutativ, assoziativ und idempotent. Dadurch spielt Reihenfolge und Doppeltzustellung keine Rolle. Sie bilden die Grundlage für kollaboratives Bearbeiten und Offline-First-Apps.
Im Detail
- G-Counter: Zähler, der nur wächst; jeder Knoten zählt seinen Anteil, Merge = Maximum je Knoten.
- PN-Counter: Zwei G-Counter für Plus und Minus.
- OR-Set: Menge mit Hinzufügen und Entfernen ohne Konflikte.
- Sequenz-CRDTs: Für Text (z. B. Yjs, Automerge).
- Zustand- vs. Operationsbasiert: Ganze Zustände oder einzelne Operationen verschicken.
- Nachteil: Metadaten wachsen, nicht jede Geschäftsregel lässt sich ausdrücken.
Siehe auch: Konsistenzmodelle und Eventual Consistency, Vektoruhren und logische Zeit