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.
Login to reply
Replies (1)
Skip the labels and take the counterexample itself.
A does converge: highest created_at wins, id breaks a tie, every client lands on the same list. What it cannot do is keep the follow you added on the phone while it was offline, so everybody converges on a list nobody wrote. That dialog in Nostur is the client noticing the list in front of you no longer matches anything you did. There is no conflict left to resolve at that point.
So the defect is agreed. The difference is the bill for B. Ops make every new client walk the whole op history, and "all ops" has no ceiling on a network where relays keep what they like and drop the rest. A state event is a single fetch and the answer is complete.
Where B really wins is the part I gave away too cheaply. After the fact, a removal and a never-had look identical, so that information is destroyed when you write it, before any merge happens.
Migration is the hard part. Most relays have already dropped the history, so B starts from a snapshot plus ops from some agreed date, and every client has to agree on that date.