Hacker News new | ask | show | jobs
by janl 3555 days ago
How is "conflict-free sync" done? The usual approach is last-write-wins, which is just a euphemism for "randomly losing user data", or CRDTs or Operational Transforms, which severely limit the data models one can sync.

I'm happy to learn about a silver bullet here.

2 comments

It is true that most Operational Transform systems have limited data model support, but that's an area Realm is quite unique on. The Realm Mobile Platform supports all of Realm database's current data types, such as native support for links and ordered lists. Also have plans for much more including: substring changes, counters and sets.
Thanks, that's gonna be the limiting factor then, developers not finding a way to represent some of their storage needs on this platform.

It's a fair trade-off, but hardly neither objectively worse or better than couch-sync. I'm excited to see where Realm goes.

In my very unscientific approximation couch/git-style sync solves about 80% of general use cases, CRDT/OT cover another 10-15% and the rest are poor souls that have to do something custom. (All this excluding binary sync/rsync/BitTorrent/Dropbox.)

Some CRDTs employ vector clocks. CRDT is a veeeeery broad family of algorithms and data structures.
Is that not what I stated (even if it was poorly phrased, and I can no longer edit it)?