3 ms·
I'm studying CRDTs so that I can finally add sync and real-time collaboration to my apps without having to run my own servers. If all goes well, I'll be able to
by archagon 9y ago
I'm studying CRDTs so that I can finally add sync and real-time collaboration to my apps without having to run my own servers. If all goes well, I'll be able to simply push my files to any old database (e.g. CloudKit) and have the merge conflicts always resolve deterministically for any arbitrary number of users. Proof-of-concept using Victor Grishchenko's Causal Trees algorithm is already working — just need to add a few refinements and write up a nice blog post!
https://github.com/archagon/crdt-playground https://github.com/archagon/crdt-playground
- UK-AL 9y agoWhat materials are you using to study?
- archagon 9y agoMostly the original papers on Logoot[1]/LSEQ[2], RGA[3], and Causal Trees[4], as well as some source code analysis (Swarm, Y.js), some tangential papers concerning comparative algorithm performance, and as many blog posts, articles, and lectures as I could get my hands on. For reasons of efficiency, most CRDT research is focused on operation-based CRDTs (i.e. CmRDTs) which tend to rely on a central server, whereas I'm more interested in state-based CRDTs (CvRDTs) that can be freely used in a P2P environment, so I'm a little on my own when it comes to the implementation. [1]: https://hal.archives-ouvertes.fr/inria-00432368/document https://hal.archives-ouvertes.fr/inria-00432368/document [2]: https://hal.archives-ouvertes.fr/hal-00921633/document https://hal.archives-ouvertes.fr/hal-00921633/document [3]: https://pdfs.semanticscholar.org/8470/ae40470235604f40382aea4747275a6f6eef.pdf https://pdfs.semanticscholar.org/8470/ae40470235604f40382aea... [4]: https://ai2-s2-pdfs.s3.amazonaws.com/6534/c371ef78979d7ed84b6dc19f4fd529caab43.pdf https://ai2-s2-pdfs.s3.amazonaws.com/6534/c371ef78979d7ed84b...