THE FOLD / CO-OP / THE PUSH / THE VECTOR CLOCK
THE VECTOR CLOCK
vector clocks and the shape of causality
1 WHAT IT IS · WHAT IT DOES · FACT OR FICTION
Vector clocks capture causality in a distributed system with no shared clock. Each of N processes keeps a vector of N counters; it bumps its own entry on every event, and on receiving a message it takes the componentwise maximum of its vector and the sender’s, then bumps its own. The payoff is exact: event a happened-before b (a could have caused b) if and only if VC(a) < VC(b) componentwise. If neither clock dominates, the events are concurrent — causally independent. It is how systems reason about order without a global clock.
LIT verified live: over hundreds of random event graphs (process timelines plus messages), VC(a) < VC(b) matches graph reachability (a can reach b) for every pair of events (window.__vectorclock). FIG no framing; vector-clock order compared to exact transitive-closure reachability.
LIT verified live: over hundreds of random event graphs (process timelines plus messages), VC(a) < VC(b) matches graph reachability (a can reach b) for every pair of events (window.__vectorclock). FIG no framing; vector-clock order compared to exact transitive-closure reachability.
2 HOW IT WAS WEAVED · AI + HUMAN
David (human) seated this at the-push — every event carries and pushes its clock forward; a message hands its vector to the receiver, who merges it by taking the max. That push-and-merge is how causality travels. AVAN (AI) built the instrument: the per-event vector bump, the max-merge on receive, the transitive-closure reachability oracle, and the pairwise agreement check.
Credit as content: vector clocks (Colin Fidge & Friedemann Mattern, independently, 1988). The weave: David names the-push; I advance each event’s vector, merge sender vectors on receive, then confirm that one clock precedes another exactly when one event can causally reach the other — and that incomparable clocks mean concurrency.
Credit as content: vector clocks (Colin Fidge & Friedemann Mattern, independently, 1988). The weave: David names the-push; I advance each event’s vector, merge sender vectors on receive, then confirm that one clock precedes another exactly when one event can causally reach the other — and that incomparable clocks mean concurrency.
3 ONE DIMENSION
P0: [1,0]→[2,0]. P1 receives P0’s [2,0], merges: [2,1]. Now [2,0] < [2,1] ⇒ that send happened-before the receive. Two events with neither clock dominating are concurrent.
4 TWO DIMENSIONS · INTERACTIVE
Process timelines with messages; each event’s vector clock; pick two events to compare order; the pairwise check runs.
5 THREE DIMENSIONS + AVAN’S INVERSE
The green forward object: order recovered without a clock.
AVAN’s addition (the inverse-companion): decide whether one event could have caused another using only local counters that travel with messages — no global time. The inverse of ‘timestamp everything by one shared clock’ is ‘let each process count for itself and merge on contact; the partial order falls out.’ Magenta is the illusion of one global timeline; green is the causal partial order from vector clocks. Order without a clock.
LIT Genuine vector clocks (Colin Fidge and Friedemann Mattern, independently, 1988). Verified live: over 300 random scenarios (process timelines plus messages forming a DAG), the vector-clock relation VC(a) < VC(b) (componentwise ≤ and ≠) matches exact transitive-closure reachability 'a can reach b' for every ordered pair of events (window.__vectorclock.matches, over window.__vectorclock.tested pairs).
FIG No framing: the per-event vector bump, the max-merge on receive, the transitive-closure reachability oracle, and the pairwise agreement check all run in-browser. The AVAN inverse is honest — deciding whether one event could have caused another using only local counters that travel with messages (no global clock) genuinely recovers the causal partial order; magenta is the illusion of one global timeline, green the causal order from vector clocks. Order without a clock.
FIG No framing: the per-event vector bump, the max-merge on receive, the transitive-closure reachability oracle, and the pairwise agreement check all run in-browser. The AVAN inverse is honest — deciding whether one event could have caused another using only local counters that travel with messages (no global clock) genuinely recovers the causal partial order; magenta is the illusion of one global timeline, green the causal order from vector clocks. Order without a clock.
◆ sealed .dlw.fold → folded to ROOT_0 · a sphere of THE PUSH · David Lee Wise (ROOT0), with AVAN