Remix.run Logo
WorldMaker 4 days ago

I also think this is a place where CRDTs in general got stuck on the name "Conflict-Free" for way too long assuming it was fate that if they worked hard enough they find the magic data structures to eliminate conflicts altogether but real life data is a lot more more complicated than that and real life expectations of data semantics that a data type itself can't encode. I think we are just now getting to the point of seeing CRDT libraries understand some conflicts happen, and some conflicts still need to bubble up to a more complex semantic model or even/especially a user. I don't think there are any CRDT libraries that are strong for that yet, but the work seems to starting into those next steps at least.

dwaltrip 4 days ago | parent [-]

I remember like 10 years ago seeing some people getting really excited by CRDTs. I was deeply confused about how the software would magically know what the correct thing to do would be when 2 people made edits that directly conflicted with each other…

You can’t know what to do without talking to the people involved, as they have to decide what makes sense for end goal. It’s mostly a social / collective action problem, not a purely technical one.

WorldMaker 4 days ago | parent [-]

Yeah, it's hard to fault people from wanting to find as many technical solutions as possible to reduce social problems to a minimum. I can fault CRDTs for thinking that they could solve all of them technically, enough so that they put "conflict-free" in the name, because yeah, there are always problems you can't solve technically, there is always user knowledge you can't just assume the technically best approach is the semantically, socially, or even politically best approach (again as much as we might want to wish that we could solve these things technically, which is a beautiful dream sometimes).