▲ | gritzko 5 days ago | |||||||||||||||||||||||||||||||
The big idea behind CRDTs is that a data structures can have replicas synchronizing on a best-effort basis. That is much closer to the physical reality: server here, client there, phones all over the place. The basic CRDT ideas are actually pretty easy to implement: add some metadata here, keep some history there. The difficulty, for the past 20 years or so, is making the overheads low, and the APIs understandable. Many projects revolve around some JSON-ish data format that is also a CRDT: - Automerge https://automerge.org (the most tested one, but feels like legacy at times, the design is ~10yrs old, there are more interesting new ways) - JsonJoy https://jsonjoy.com/ - RDX (mine) https://replicated.wiki/ https://github.com/gritzko/go-rdx/ - Y.js https://yjs.dev/ Others are trying to retrofit CRDTs into SQLite or Postgres. IMO, those end up using last-write-wins in most cases. Relational logic steers you that way. | ||||||||||||||||||||||||||||||||
▲ | petralithic 4 days ago | parent [-] | |||||||||||||||||||||||||||||||
Could you explain more about Automerge being legacy? They recently released a new major version and revamped their algorithm I believe. What is better about your version? | ||||||||||||||||||||||||||||||||
|