Zum Hauptinhalt springen
Architektur

Ein Cluster, der sich selbst koordiniert

Nodus ist ein Clustering- und Messaging-Kern, den Sie in Ihren Prozess einbetten. Jedes Mitglied führt dieselben Schichten über einen gemeinsamen Transport aus – Mitgliedschaft, Leadership und Messaging entstehen aus den Nodes selbst, ohne externen Koordinator im Betrieb.

Die Grundform

Peers statt Koordinator

Jedes Mitglied hält eine persistente Verbindung zu jedem Peer und führt dieselben vier Schichten aus. Es gibt keinen privilegierten Node, von dem die anderen abhängen – der Leader ist schlicht das Mitglied, das alle wählen.

Ihr Dienst – ein Prozess pro MitgliedNodus ist eine Bibliothek, die Sie einbetten · kein externer Koordinator zu betreibenPEER-TO-PEER-CLUSTER · jedes Mitglied führt dieselben Schichten ausnode-1LEADER · Epoch 3TransportMitgliedschaftKoordinationMessagingnode-2FollowerTransportMitgliedschaftKoordinationMessagingnode-3FollowerTransportMitgliedschaftKoordinationMessagingHeartbeats · Gossip-Digest · typisierte Nachrichten – eine persistente Verbindung pro Peer
Die Schichten

Vier Schichten, eine Abhängigkeit

Die schwierigen Teile beim Betrieb mehrerer Instanzen – einmal gelöst und eingebettet, damit Sie Anwendungscode schreiben statt Infrastruktur für verteilte Systeme.

Transport

Persistente, priorisierte Verbindungen

Eine langlebige Verbindung zu jedem Peer trägt alle Ebenen – Mitgliedschaft, Messaging, Events und Health – mit einer Prioritätsspur, damit Steuerverkehr nie von großen Payloads ausgehungert wird.

Mitgliedschaft

Wer gerade im Cluster ist

Nodes nehmen sich gegenseitig aus einem Peer-Set auf und führen ein Live-Roster. Beitritte und Austritte erscheinen als Events; ein Gossip-Digest läuft auf bestehendem Verkehr mit, um Sichten ohne Registry-Dienst abzugleichen.

Koordination

Deterministische Leader-Election

Jedes Mitglied führt dieselbe Wahl über dieselben erreichbaren Peers durch und wählt unabhängig denselben Leader – getragen von einem Epoch-Zähler, sodass ein veralteter Leader stets vom aktuellen unterscheidbar ist.

Messaging

Typisiert: Punkt-zu-Punkt, Broadcast & Events

Senden Sie eine typisierte Payload an einen oder alle Peers, warten Sie auf eine typisierte Antwort, die über eine Correlation-ID zugeordnet wird, oder publizieren Sie auf einem clusterweiten Event Bus – alles über denselben Transport.

Die Design-Wette

Kein externer Koordinator – by Design

  • Kein ZooKeeper, etcd oder ConsulDie Koordination lebt als Bibliothek in Ihrem Prozess. Es gibt keinen externen Quorum-Dienst, den Sie aufsetzen, absichern, aktualisieren oder am Laufen halten müssen – ein verteiltes System weniger im Betrieb.
  • Jeder Node führt dieselbe Logik ausEs gibt keinen speziellen Koordinator-Prozess. Jedes Mitglied berechnet Mitgliedschaft und Leadership aus denselben Eingaben, sodass der Cluster weiterarbeitet, solange die Mitglieder einander erreichen.
  • Bildet sich selbst und heilt sich selbstNodes entdecken Peers, einigen sich auf einen Leader und konvergieren nach Beitritten, Austritten und Ausfällen von selbst neu – der Cluster ist eine emergente Eigenschaft der Mitglieder, kein Dienst, von dem sie abhängen.
Epochs

Leadership, getragen von einer Epoch

Jedes Wahlergebnis wird mit einer monoton steigenden Epoch versehen. Wenn ein Node beitritt oder der Leader ausfällt, wählen die Überlebenden neu und die Epoch erhöht sich – so lässt sich eine Nachricht oder ein Anspruch eines veralteten Leaders stets vom aktuellen unterscheiden, und beim Failover glauben nie zwei Nodes gleichzeitig, sie führten.

  • Deterministische Strategie – höchste ID oder ältester Node – über dieselben erreichbaren Peers
  • Ein Tiebreaker löst Kollisionen bei gleicher Epoch zu genau einem Leader auf
  • Die Epoch steigt bei jeder Änderung, sodass Leadership stets geordnet ist

Erleben Sie es in Ihrem eigenen Dienst

Betten Sie Nodus ein, treten Sie einem Cluster bei und folgen Sie dem Leader in wenigen Zeilen – und lesen Sie dann, wie Mitgliedschaft und Ausfallerkennung es ehrlich halten.