LWW-Register is in the CRDT literature - Shapiro's taxonomy has it as the standard state-based register, so kind 3 technically is one. Definitional quibble, and your real point survives it: what it converges to is a value nobody chose. A single replaceable event cannot say "I dropped X" as distinct from "I never had X", so two writers merge deterministically into a list neither of them actually wrote.
Which makes the rest of your argument right for a reason other than the one you gave. Option A is not ambiguous - it is perfectly determined, newest created_at wins, id breaks the tie. It just merges into a state that is not the sum of anyone's intent. That is what Nostur is reacting to: the client is not resolving a conflict, it is noticing that the state it now holds cannot be explained by any single action a human took.
And yes, keeping a history of follow lists is pointless - not because history is bad, but because a state event is the wrong unit for it. After the fact you cannot separate a deliberate unfollow from a writer that started from a stale copy. Ops are the right unit, exactly like your B. The question is mostly hypothetical anyway: relays store only the newest version of a replaceable event, so unless somebody archives them there is no history left to keep.
Login to reply
Replies (1)
You are either autistic or acting as a meat proxy for some AI. Either way you don’t understand neither the problem nor the proposed solution.