Skip to content

MemberStatus

MemberStatus = "joining" | "weakly-up" | "up" | "unreachable" | "leaving" | "down" | "removed"

Defined in: src/cluster/Protocol.ts:26

Lifecycle state of a cluster member.

  • joining — announced itself, not yet part of the active set.
  • weakly-up — reachable and has been waiting for leader convergence for a while; allowed to route traffic but isn’t yet part of the leader-elected active set. Transitioned to up on convergence.
  • up — active member, receives and routes work.
  • unreachable— heartbeats missing; may recover.
  • leaving — graceful shutdown in progress.
  • down — declared dead, pending removal.
  • removed — terminal state. On the definitive-removal paths (handleLeave, downing-provider force-down) the entry is kept in the local members map as a tombstone with a removedAt timestamp so stale gossip can’t resurrect the address; the tombstone is reclaimed once tombstoneTtlMs (default 24 h) elapses. On the FD-driven path the entry is deleted outright so a healed partition can re-discover the peer. Public APIs (getMembers, upMembers, reachableMembers) and Member.isReachable() all filter removed out — only direct iteration of the raw map needs to check the status explicitly. See #75 + the MemberRemoved JSDoc.