[HN Gopher] Faster CRDTs (2021)
       ___________________________________________________________________
        
       Faster CRDTs (2021)
        
       Author : bpierre
       Score  : 125 points
       Date   : 2024-08-27 20:47 UTC (2 hours ago)
        
 (HTM) web link (josephg.com)
 (TXT) w3m dump (josephg.com)
        
       | fredrikholm wrote:
       | I remember stumbling over this post a few years ago. Really
       | entertaining post, one of my favorites in recent years.
        
         | anaclet0 wrote:
         | IIRC the title was CRDTs go brrr
        
       | luke-stanley wrote:
       | Could be good to have the date put with the title?
        
         | gchamonlive wrote:
         | July 31 2021
        
         | dang wrote:
         | Added above.
        
       | JohnDeHope wrote:
       | Yeah, new rule: I don't believe anything in a published
       | scientific paper until it has been independently verified for the
       | third time. I don't even want to _hear_ about it, before then,
       | unless I read the journal the original (or second) paper was
       | published in. What I 'd really like, and would subscribe to even
       | as a lay person, is the JOURNAL OF STUDIES WHOSE FINDINGS HAVE
       | BEEN SUCCESSFULLY REPRODUCED FOR THE THIRD TIME. I'd pay for a
       | subscription to that.
        
         | lylejantzi3rd wrote:
         | Me too.
        
       | kirubakaran wrote:
       | - https://news.ycombinator.com/item?id=28017204 (3 years ago, 151
       | comments)
       | 
       | - https://news.ycombinator.com/item?id=33903563 (2 years ago, 22
       | comments)
       | 
       | - https://news.ycombinator.com/item?id=41372833 (this post)
       | 
       | - https://news.ycombinator.com/item?id=41373288 (this comment)
        
         | dang wrote:
         | Thanks! Macroexpanded:
         | 
         |  _5000x faster CRDTs: An adventure in optimization (2021)_ -
         | https://news.ycombinator.com/item?id=33903563 - Dec 2022 (22
         | comments)
         | 
         |  _Faster CRDTs: An Adventure in Optimization_ -
         | https://news.ycombinator.com/item?id=28017204 - July 2021 (151
         | comments)
        
       | IshKebab wrote:
       | (2021) and Automerge's Rust implementation seems to have landed
       | so it would be interesting to see an updated benchmark.
        
         | josephg wrote:
         | Author here. Yjs has also been rewritten in rust (yrs). And
         | I've got a totally different approach to solving this problem
         | too.
         | 
         | It would definitely be good to update the benchmarks.
         | Everything has gotten faster.
        
       | jzelinskie wrote:
       | What are some real world apps using CRDTs that have really good
       | experiences?
       | 
       | IIRC Notion was supposed to be one of them but realistically
       | taking notes with two people in Notion is almost unusable
       | compared to Google Docs.
        
         | danielvaughn wrote:
         | Figma uses a CRDT-ish approach. I'm working on one at the
         | moment, but it'll be a while before it's publicly available. At
         | the moment, I'm using Loro: https://loro.dev
        
         | spacecadet wrote:
         | Not a public high bandwidth example, but a consulting team I
         | was on implemented CRDTs in a private mobile app used for a
         | compliance documentation use case. More of a precaution, the
         | actual number of end-users editing a record at any given time
         | is expected to be 1, but while reviewing their system, we found
         | that the clients system can support multiple and sometimes
         | their employees don't communicate/follow procedures. We first
         | tried to convince them to make changes on their end, but their
         | development team straight up refused.
        
         | yazaddaruvala wrote:
         | In practice, Git
         | 
         | Some CRDT purists would say "its not perfectly conflict free so
         | its not a CRDT".
         | 
         | Sure[0], but for the rest of us that are pragmatic about best
         | effort conflict resolution Git is likely the most successful
         | CRDT application.
         | 
         | [0] https://en.wikipedia.org/wiki/No_true_Scotsman
        
           | kiitos wrote:
           | CRDT literally means Conflict-free Replicated Data Type.
           | Expecting CRDTs to be conflict-free isn't purism, it's simple
           | validation. Git is, inarguably, not a CRDT.
        
           | vlovich123 wrote:
           | This comes up every time but there's three criterion for
           | CRDTs and git fails 2 of them. Even ignoring the requirement
           | for automatic conflict resolution (which git can't meet since
           | automatic resolution fails as a matter of course) and
           | ignoring that the conflict resolution algorithm has to be
           | part of the data type (it's not), it fails the requirement
           | that separate different copies must eventually converge when
           | brought online but that's demonstrably false as people may
           | use different conflict resolution mechanisms AND the commit
           | graph of a resolved conflict may itself then be different
           | resulting in different histories from the process of brining
           | git online.
           | 
           | This is because the commit graph itself isn't CRDT. If I
           | commit A and then B but someone's clone only has B applied,
           | you can't synchronize even automatically; different git
           | histories don't resolve in any way automatically at all and
           | once you pick a solution manually your copy will not have the
           | same history as anyone else that tries to redo your
           | operations.
           | 
           | No true Scotsman doesn't apply here because there is a very
           | precise definition of what makes a CRDT that is a clear
           | delineating line.
        
           | Groxx wrote:
           | [delayed]
        
         | iced_beverage wrote:
         | The code editor Zed uses them for collaboration. It was
         | discussed in a Developer Voices episode -
         | https://youtu.be/fV4aPy1bmY0?si=0O6fCmK8NziFf9Hi
        
         | maccard wrote:
         | Doesn't google docs use crdt?
        
           | surfmike wrote:
           | I believe it uses Operational Transforms
        
       ___________________________________________________________________
       (page generated 2024-08-27 23:00 UTC)