nominal

Decision rules

What the witness will and will not do

A witness that guesses is worse than no witness at all. The rules below are deliberately narrow: the node decides only what it can decide correctly from the information a caller supplies.

Vote exchange

RequestVote, abridged
→ POST /v1/vote
{
  "cluster":        "atlas-eu",
  "candidate":      "atlas-eu-2",
  "term":           4472,        // must exceed last seen term
  "last_log_index": 918340,
  "last_log_term":  4471
}

← 200
{
  "granted":              false,
  "reason":               "leader lease still valid",
  "lease_expires_in_ms":  2740,
  "term":                 4471   // witness stays on the older term
}

Decision table

first matching row wins
ConditionResponseRationale
term ≤ last seendenyStale candidate; granting would permit two leaders
leader lease unexpireddenyA live leader exists regardless of what the candidate sees
log behind known indexdenyCommitted entries would be lost
already voted this termrepeat priorIdempotence; never contradict an earlier answer
clock skew > 50 msrefuseLease arithmetic becomes unsound
none of the abovegrantCandidate is at least as current as anything we have seen

Guarantees

One vote per term

The node grants at most one vote per cluster per term and persists that fact before answering. A crash between the decision and the response therefore cannot produce a second, contradictory vote.

No data path

Log entries never traverse this node. It sees indices and terms — enough to compare currency, not enough to reconstruct content.

Bounded influence

An arbitration decision binds for exactly one lease period. If the partition heals, the cluster resumes deciding for itself without waiting for us to notice.

Deliberate omissions

  • No leadership transfer: the witness will not nominate, only answer.
  • No membership changes: adding or removing voters is the cluster's business.
  • No log replication, snapshotting or catch-up assistance.
  • No cross-cluster reasoning; each registration is isolated.
  • No preference between candidates beyond the table above.

Each of these was requested at some point and declined. A witness with opinions is a single point of failure wearing a helpful hat.