Locks, Leases, Leader-Election, Watches, Rate Limiting und Transaktionen — die Primitive, die verteilte Systeme brauchen, um Race Conditions, doppelte Arbeit und Split-Brain zu vermeiden. Sie laufen auf demselben Store, den Sie bereits für den Cache nutzen, ohne separaten ZooKeeper, etcd oder Consul zu betreiben.
Gegenseitiger Ausschluss über Ihre gesamte Flotte — nur ein Halter führt einen kritischen Abschnitt gleichzeitig aus, und der Lock wird automatisch freigegeben, wenn sein Besitzer stirbt.
Zeitlich begrenzter Besitz eines Keys mit Ablauf und Verlängerung — der Lifecycle, auf dem Locks und Wahlen aufbauen.
Eine Gruppe einigt sich auf einen koordinierenden Node, und bei einem Ausfall übernimmt ein verbleibendes Mitglied — aus dem Nodus-Cluster, der unter jedem Zaris-Deployment läuft.
Reagieren Sie auf Änderungen an Keys und Präfixen, sobald sie passieren — Konfigurations-Reloads, Presence, Dashboards, Event-Fan-out — ohne Polling-Schleife.
Feste und gleitende Fenster, mit atomaren Countern clusterweit durchgesetzt, ohne einen separaten Service aufzusetzen.
Atomare Multi-Key-Transaktionen und Compare-and-Swap halten gleichzeitige Updates korrekt — entweder werden alle angewendet oder keines.
Führen Sie denselben Code als mehrere Instanzen aus, und Reihenfolge und Besitz sind nicht mehr selbstverständlich. Statt einen separaten Koordinationsdienst anzuflanschen, bietet Zaris Ihnen die Primitive, die Race Conditions und Split-Brain verhindern, direkt im Store.
Cache, native Datenstrukturen und Koordination liegen im selben Store und werden über denselben Client und Connection String erreicht.
Kein externer Koordinator wie ZooKeeper, etcd oder Consul zu betreiben — die Primitive werden in denselben .NET-Bibliotheken wie Ihr Datenzugriff mitgeliefert.
Der Koordinationszustand wird repliziert (RF2); ein Lock oder Lease übersteht den Verlust eines Nodes und wird sauber freigegeben, wenn sein Besitzer stirbt.
Installieren Sie Zaris und nutzen Sie Locks, Leases, Watches und Transaktionen auf dem Store, den Sie bereits verwenden.