You don't need a CRDT to build a collaborative experience | Hacker News
Notion is “collaborative” and we don’t use a CRDT for text, it’s all last-write-wins decided by the server. However our LWW texts are individually small - one block/paragraph in size - and adding/moving/removing blocks is intention-preserving if not perfectly convergent. As the article says, the downside for LWW is that “offline” / async collaboration isn’t so great. That’s why we’re working on switching to CRDT for our texts. If you’re interested in bringing CRDTs to a product with a lot of users, consider joining Notion’s Docs team - https://boards.greenhouse.io/notion/jobs/5602426003 / @jitl on Twitter / jake@makenotion.com LWW becomes useful if you can: a) help humans to see who is doing what on a doc b) reduce the size of the change that is LWW As you've said: > However our LWW texts are individually small - one block/paragraph in size This is really important, because by reducing the size of the individual element that any single user is updating you can also reduce the chance of
You don't need a CRDT to build a collaborative experience | Hacker News Hacker News new | past | comments | ask | show | jobs | submit login You don't need a CRDT to build a collaborative experience ( zknill.io ) 236 points by zknill on Nov 16, 2023 | hide | past | favorite | 65 comments jitl on Nov 16, 2023 | next [–] I agree broadly with the article’s position but I think locks are more harmful than helpful. When I was a Quip user (2018) it was super frustrating to get locked out of a paragraph because someone’s cursor idled there. Instead just allow LWW overwrites. If users have contention
Explore this link on the map →related reading
- You don't need CRDTs for collaborative experiences — /dev/knillzknill.io
- Peritext: A CRDT for Rich-Text Collaborationinkandswitch.com
- An Interactive Intro to CRDTs | jakelazaroff.comjakelazaroff.com
- Building a BFT JSON CRDTjzhao.xyz
- Designing Data Structures for Collaborative Apps - Matthew Weidnermattweidner.com
- CRDTs go brrrjosephg.com
- A simple way to build collaborative web apps | Hacker Newsnews.ycombinator.com
- About CRDTs • Conflict-free Replicated Data Typescrdt.tech
- Data Laced with History: Causal Trees & Operational CRDTs — Archagon Was Herearchagon.net
- Conflict-free replicated data type - Wikipediaen.wikipedia.org
- Upwelling: Combining real-time collaboration with version control for writers.inkandswitch.com
- CRDT: Text Buffer - Made by Evanmadebyevan.com