Skip to content

Member

Defined in: src/cluster/Member.ts:16

Immutable description of a cluster member at a point in time. Member instances are replaced (not mutated) as their status evolves. The version counter is incremented on every status change and acts as a logical clock for gossip merges.

removedAt is set only on tombstone members (status === ‘removed’), via withRemoved. It carries the wall-clock instant at which the tombstone was created and gossips to peers so every node prunes the tombstone at roughly the same wall-clock time — see Cluster.tombstonePruneTick (#75).

new Member(address, status, version, roles?, removedAt?): Member

Defined in: src/cluster/Member.ts:19

NodeAddress

MemberStatus

number

Iterable<string> = []

number

Member

readonly address: NodeAddress

Defined in: src/cluster/Member.ts:20


readonly optional removedAt?: number

Defined in: src/cluster/Member.ts:24


readonly roles: ReadonlySet<string>

Defined in: src/cluster/Member.ts:17


readonly status: MemberStatus

Defined in: src/cluster/Member.ts:21


readonly version: number

Defined in: src/cluster/Member.ts:22

hasRole(role): boolean

Defined in: src/cluster/Member.ts:29

string

boolean


isReachable(): boolean

Defined in: src/cluster/Member.ts:31

boolean


toData(): MemberData

Defined in: src/cluster/Member.ts:38

MemberData


toString(): string

Defined in: src/cluster/Member.ts:78

string


withRemoved(removedAt): Member

Defined in: src/cluster/Member.ts:74

Transition into the removed tombstone state with a fresh removedAt timestamp. Cluster paths that definitively remove a peer (graceful leave, downing-provider force-down) call this instead of withStatus('removed') so the tombstone carries an age — required for Cluster.tombstonePruneTick to drop expired tombstones cluster-wide (#75).

number

Member


withStatus(status): Member

Defined in: src/cluster/Member.ts:62

MemberStatus

Member


static fromData(data): Member

Defined in: src/cluster/Member.ts:52

MemberData

Member