New paper, which @pvh and I wrote together: “PushPin: Towards Production-Quality Peer-to-Peer Collaboration”.
It's about our hard-won experience trying to build peer-to-peer local-first software using CRDTs. Very practical, lots of insights. Take a look! https://martin.kleppmann.com/papers/pushpin-papoc20.pdf …
-
-
Great stuff! I wonder how CRDT convergence plays out in practice, e.g. - user 1 deletes a card, meanwhile - user 2 adds important info to the card The converged result might be deletion, but that's no good. Maybe the convergence is a 'conflict' data record?
3 replies 0 retweets 2 likes -
I think the deterministic protocol on how to merge is the main thing about CRDTs but I am nowhere close to being knowledgeable on CRDTs in terms of the hardcore math/CS of it all.
1 reply 0 retweets 0 likes -
Replying to @rplevy @chatur_shalabh and
It seems like you would just implement the merge function to do whatever suits your requirements, or is there a more CRDT-general answer than that?
1 reply 0 retweets 0 likes -
Replying to @rplevy @chatur_shalabh and
I haven't seen much writing on the UX considerations of eventually consistent systems. There's some writing specifically around meeting intuitions in text editing. You can also look to what tools like git do: another context where you can't blithely discard changes.
1 reply 0 retweets 1 like -
My sense is that a CRDT should preserve enough information to present what happened in a way the user will understand. That doesn't necessarily mean reifing the conflict. You might also maintain conflict-free representation of the world. If that makes sense.
2 replies 0 retweets 2 likes -
In this video from a few years ago,
@martinkl talks at a high level about modeling conflicts and even pull requests in an app built on Hypermerge. Haven't looked at the implementation.https://youtu.be/B5NULPSiOGw?t=1322 …1 reply 0 retweets 2 likes -
PushPin is a continuation of that work, yes. The paper captures much of the state of the art in our research. There is, of course, much left unsaid, but questions and feedback on this paper might motivate me to write another.
1 reply 0 retweets 1 like -
Especially given the venue, I was looking for more discussion of the data model. How did you decide how the data would be shaped? What consistency is required within and across documents? Between view data and document data? Is there somewhere I can read about this?
1 reply 0 retweets 0 likes -
One of my big questions in this space is how well the research generalizes beyond the collaborative text editing use case. Sure the sites converge, but is convergence enough? How well do application programmers need to understand the behavior of their particular CRDTs?
2 replies 0 retweets 0 likes
On that note, some of Ink & Switch's writing seems to conflate CRDTs generally and one or another of the large number of CRDTs that have been developed. "CRDTs accumulate a large change history, which creates performance problems" is not generally true.
-
-
I have heard rumors of usable state-based CRDTs but I have not found any implementations I could use. Would love to take one for a spin if you can correct my ignorance.
0 replies 0 retweets 0 likesThanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.