Versions in this module Expand all Collapse all v0 v0.2.1 Aug 24, 2025 Changes in this version type Membership + func (m *Membership) Version() uint64 + type MembershipVersion struct + func (mv *MembershipVersion) Get() uint64 + func (mv *MembershipVersion) Next() uint64 v0.2.0 Aug 23, 2025 Changes in this version + var ErrInvalidAddress = errors.New("invalid node address") + type Membership struct + func NewMembership(ring *Ring) *Membership + func (m *Membership) List() []*Node + func (m *Membership) Mark(id NodeID, state NodeState) bool + func (m *Membership) Remove(id NodeID) bool + func (m *Membership) Ring() *Ring + func (m *Membership) Upsert(n *Node) + type Node struct + Address string + ID NodeID + Incarnation uint64 + LastSeen time.Time + State NodeState + func NewNode(id string, addr string) *Node + func (n *Node) Validate() error + type NodeID string + type NodeState int + const NodeAlive + const NodeDead + const NodeSuspect + func (s NodeState) String() string + type Ring struct + func NewRing(opts ...RingOption) *Ring + func (r *Ring) Build(nodes []*Node) + func (r *Ring) Lookup(key string) []NodeID + func (r *Ring) Replication() int + func (r *Ring) VNodeHashes() []string + func (r *Ring) VirtualNodesPerNode() int + type RingOption func(*Ring) + func WithReplication(n int) RingOption + func WithVirtualNodes(n int) RingOption