Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What are some non-realtime use cases of CRDT?
16 points by cocktailpeanuts on Jan 3, 2021 | hide | past | favorite | 3 comments
I get that CRDT is great for realtime collaboration, but are there any other use cases where CRDT can be used?

More specifically, are there any asynchronous use cases of CRDT that are very useful?




You can also use CRDTs for offline mode.

Say you wanted to build a rich text editor, which can't diff-and-merge as easily as with plain text. Instead of using git for version control, you can use CRDTs very similarly by fetching the remote state, merging with local state, and then pushing.

In that sense, you could build local first software with interoperable hosting platforms (like Github for git) [1].

See [2] as an another example but for a budgeting app.

[1] https://josephg.com/blog/crdts-are-the-future/ [2] https://actualbudget.com/blog/porting-local-app-web


Many eventually consistent databases and storage engines such as Riak use CRDTs internally to allow subsets of nodes to accept updates and reconcile those with updates that were accepted by other parts of the cluster. At the end of the day, there’s no difference between real-time collaboration and a cluster-internal distributed system, other than security considerations and average reliability levels. The convergence of these is going to be a fascinating area of development in the coming years.


A distributed database can make good use of CRDTs to improve availability and performance with known behavior when nodes disagree.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: