I'm trying to figure out under what practical circumstances updates would result in Eventual Convergence, not Strong Convergence. Wouldn't a node incorporate an update as soon as you receive it? What's causes the "eventual" behavior even after a node gets an update?
It seems to me the trouble is actually getting the update, not the data model as such. Yes, I realize partial orders are possible, making it impossible to merge certain sequences of updates for certain models. CRDTs solve that, as they're designed to do. (Though I hear that, for some CRDTs, merges might result in bad "human" results even if the merge operation follows all the CRDT rules.)
This "Strong Eventual Considtency" is the defining property of the CRDT. Do you have a less-confusing way to think about that property?
https://news.ycombinator.com/item?id=45177518 - 87 comments
Maybe not as long as uuids, but long enough to be comfortable they won't conflict withing your table/db.
Those will merge fine as two separate "rows".
They're not even the missing piece in decentralized infra either. There are alternatives that work as efficiently.
No it’s not because there’s nothing about hash tables that enables peer to peer collaboration over centralization. CRDTs do because you don’t need a “master” or “central” source of truth anymore.
> They're not even the missing piece in decentralized infra either.
Then what is?
I didn’t say they were anyway though, that’s why I mentioned network infrastructure as another constraint.