JoinTargets
JoinTargets =
object
Defined in: src/cluster/bootstrap/StableObservation.ts:47
What a settled observation decided — the whole input Cluster.join needs.
The issue’s original sketch also carried a stable: boolean for a degraded
fallback. It is absent because there is no degraded mode: an observation
that never settles throws (see StableObservation), so every value of
this type describes a stable one and a flag that is always true would only
invite a caller to branch on it.
Properties
Section titled “Properties”contactPoints
Section titled “contactPoints”
readonlycontactPoints:ReadonlyArray<NodeAddress>
Defined in: src/cluster/bootstrap/StableObservation.ts:67
The settled set, self included, in election order.
isInitialSeed
Section titled “isInitialSeed”
readonlyisInitialSeed:boolean
Defined in: src/cluster/bootstrap/StableObservation.ts:58
Whether this node won the address-ordered election.
readonlypolls:number
Defined in: src/cluster/bootstrap/StableObservation.ts:69
How many lookup() polls it took to settle.
readonlyseeds:ReadonlyArray<NodeAddress>
Defined in: src/cluster/bootstrap/StableObservation.ts:56
What to pass as ClusterOptions.seeds — every contact point except self.
The same list for every node, including the one that won the election. That is what makes the election safe: the elected node dials the others exactly like everyone else, so if a cluster is already running it is promoted into that one instead of starting a rival.
selfElection
Section titled “selfElection”
readonlyselfElection:SelfElectionPolicy
Defined in: src/cluster/bootstrap/StableObservation.ts:65
What to pass as ClusterOptions.selfElection — a millisecond grace for
the elected initial seed, 'never' for everyone else. Derived here
rather than left to the caller because getting the pairing wrong is the
one mistake that reintroduces the split brain.
