Applied Monotonicity: A Brief History of CRDTs in Riak
christophermeiklejohn.com
christophermeiklejohn.com
A few other resources for those interested in CRDT subject:
- Our cartoon explainer https://gun.eco/distributed/matters.html
- An excellent talk by Martin Kleppmann https://youtu.be/yCcWpzY8dIA
- Marc Shapiro's in depth talk https://www.youtube.com/watch?v=oyUHd894w18
Anyone have any more resources on the adoption/use of CRDTs?
https://en.wikipedia.org/wiki/Conflict-free_replicated_data_...
Also check out automerge, a CRDT that aims to be as JSON-like as possible: https://github.com/automerge/automerge
Martin Kleppmann (one of the creators of Automerge) has given several great in-depth talks about it, eg. https://www.youtube.com/watch?v=yCcWpzY8dIA
In particular the "operations" defined in [1] section 4.2 are defined in this file: https://github.com/automerge/automerge/blob/master/backend/o...
[1] https://www.cl.cam.ac.uk/~arb33/papers/KleppmannBeresford-CR...
Redis Enterprise is probably the biggest CRDT usage in databases, used to sync geo-replicated active-active clusters: https://redislabs.com/landing/active-active/
There's also Datanet/Kuhiro which was a novel fully distributed database using CRDTs to always merge state across disruptions to a global view, although now seemingly dysfunct: http://highscalability.com/blog/2016/10/17/datanet-a-new-crd...
I'd venture that the number of potential write conflicts introduced by FB users hopping geo's is small enough to simply report an error to the client and forcing a retry - or handled by a hand-shake before the customer crosses GEOs
Is there any practical database application where a CRDT is useful?
Any application complex enough to need geo-replication is also likely not just writing a single key per user. There will be shared keys and data structures like tables/lists/hashes that all need to be synced.
I think it's really worth mentioning how much work it takes to write this kind of article. Congratulations Chris, I think that on top being a great researcher, you are also a great writer. And a quick look at the Lasp repositories shows that you did not only write about CRDTs' history, you made a big part of it happen as well.
Meiklesoft™ ftw ️
There should have been stars there, what I meant was :
Research : * * * * * Implementation :* * * * * Writing style : * * * * *