A schematic current-term entry t appears on the leader and another of three voters while the third lags. Replication to a majority permits commitment under the current-term rule.

etcd elects a leader so writes happen in order

etcd uses Raft to order changes to its replicated state. Replicas can temporarily lag; consensus does not mean every member holds identical bytes at every instant. A leader coordinates replication, while the voting majority determines progress. Keep election, commitment, local application, and client acknowledgment separate when diagnosing whether an operation succeeded. ...

March 9, 2028 · 5 min · XB Field Notes
Five fixed voters in term one split three votes for candidate zero and two for candidate three. Three votes form the majority; two do not.

Raft elections need a majority of voters

Raft leader elections require a strict majority of the configured voting members. With fixed membership and one durable vote per server per term, two candidates cannot both win the same term: their majorities would overlap at a voter that cannot support both. This is an election guarantee, not a claim that every node always agrees about the current leader. ...

September 21, 2027 · 5 min · XB Field Notes
Two schematic peer groups have a broken contact path during partition; restoring a cross-group path permits dissemination to resume.

Gossip converges under explicit assumptions

Gossip spreads information through repeated peer contact. It can tolerate some lost exchanges because surviving copies can be sent again. Eventual convergence still needs assumptions: relevant peers must become reachable, updates must remain available, and the merge rule must handle the states that can arise. Random contact alone does not guarantee agreement by a fixed deadline. ...

September 20, 2027 · 5 min · XB Field Notes
A clockwise ring marks A20, added D35, B50 and C80. The highlighted interval (20,35] moves from B to D while other ownership remains unchanged.

Consistent hashing shrinks the rebalance

Consistent hashing limits placement changes when membership changes; it does not itself move data, make replicas agree, or distribute a hot key’s requests. In the classic clockwise ring, a key belongs to the first node point at or after its hash position, wrapping to the smallest point when necessary. ...

September 19, 2027 · 6 min · XB Field Notes
Concurrent contexts A2 B1 and A1 B2 converge by componentwise maximum into A2 B2. The merge records context and does not choose a payload winner.

Vector clocks distinguish causal order from concurrency

A vector records progress for each tracked participant. Comparing these counters distinguishes causal order from concurrency; the application still decides how to reconcile concurrent values. One timestamp is not enough A scalar timestamp can impose an order, but that order alone cannot prove causality. With stable participant identities and the usual event-clock rules, each process increments its own component for a local event. Receiving a message merges components by maximum and then increments the receiver’s component. These rules record information flow. They do not measure elapsed time or establish a physical-time ordering between machines that exchanged no information. ...

September 18, 2027 · 5 min · XB Field Notes
Tenant, operation, and action key form the fixture’s scoped identity. Business effect and receipt commit together in one database; matching requests with retained records replay the saved result.

Idempotency keys scope one logical action

An idempotency key identifies one logical action only within a service’s defined scope and retention window. Reusing the same text is not a universal exactly-once guarantee. The service must associate that identity with the right principal and operation, coordinate competing attempts, and retain enough authoritative information to recognize the action later. ...

October 12, 2026 · 7 min · XB Field Notes