field notes KEEL

one writer

Many reporters, one writer. Each machine is allowed to say what it believes about itself; exactly one process is allowed to turn those statements into records. With several writers, two orderings of the same announcements produce two different answers, and the disagreement is intermittent — the worst kind, because it goes away when you look at it and returns when you stop.

Serialising the decision removes that race and moves the risk rather than eliminating it. Now the writer's own view is the only place a wrong idea can persist, so the writer becomes the thing to watch, and its input has to be replayable. An announcement stream you can re-read is what lets you explain a record afterwards instead of arguing about it.

The bug this design actually produced was not a corrupt record but a stale one: the writer aggregated claims from several reporters and held on to a claim nobody had renewed. The fix was a change to what counted as evidence, not a change to availability.

What this proves is that making a decision once, in one place, is the cheap half. Being able to say why the decision was made — to a person, a day later, from the record — is the expensive half, and it is what lets one operator run something that behaves like a staffed fleet.

drawn from: naming and leadership commits

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