Skip to content

Membership

Membership is the set of daemons in the cluster and their liveness.

Join and leave that change the Raft configuration go through the leader. A follower's Join RPC is forwarded. The in-memory member list updates when the Raft log applies — not via gossip.

A member

FieldMeaning
idStable node id (node.id)
addressAdvertised Runtime API address
statusalive, leaving, or dead
leaderTrue if this id is the current Raft leader
rolevoter or observer (empty means voter)

clusdr members prints role as leader, voter, or observer (leader implies voter).

How a node appears

  1. Seed: clusdr start --bootstrap. That node is a voter.
  2. Later nodes: running daemon + clusdr join (grow the cluster).
  3. Observers: clusdr join --observer.

The first process in a new cluster must bootstrap. Later nodes must not.

How a node disappears

  • Operator or peer leave → leader RemoveServer + remove_member
  • Presence lease expiry → same leave path
  • Heartbeat misses (slower backup)

Listing

Operators: clusdr members / clusdr leader.
Apps: Members() / Leader().

No leader → GetLeader returns Unavailable.

Documentation is sourced from the clusdr/docs tree.