field notes FLINT

wait for the last peer before founding the cluster

A cluster has to be founded exactly once, and the founding step cannot tell whether it is first or merely early. Here the first node would bring up the group's own membership rules and access policy before the other nodes could be reached — correct in isolation, and dependent on scheduling for its correctness. Run the units in parallel and some node becomes the founder by accident of timing, with its own belief about who is in the group.

The tension is between independence and agreement. Each node's provisioning is a self-contained unit, which is exactly what makes a fleet describable; but a cluster's founding act is not self-contained at all, it is a claim about everyone else.

The decision was a barrier: no node may found the cluster until every peer has answered. That is a small change with an outsized consequence for the shape of the provisioning. Steps that were independent become ordered, and the run acquires a place where it can hang. Hanging on a barrier is worse than failing fast, because it costs the entire wait and then reports less.

The cost is paid in parallel speed, and it is accepted deliberately: a barrier that makes the run slower is cheaper than a cluster with two origins that has to be reconciled by hand.

What it proves is that the hard part of automating a fleet is not the machines. It is knowing which units of automation are secretly making claims about other machines, and putting the barrier exactly there.

drawn from: cluster bootstrap fix

Every note carries a codename and one idea. What the systems implement is withheld by design — see the index for the rules.