[HN Gopher] How Drawpile works
       ___________________________________________________________________
        
       How Drawpile works
        
       Author : sidedishes
       Score  : 46 points
       Date   : 2021-08-17 16:41 UTC (6 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | [deleted]
        
       | sambroner wrote:
       | Would be really neat to put Drawpile on the Fluid Framework. You
       | could easily map Drawpile's ordered operations into distributed
       | data structures. I did a similar thing a few months ago with
       | QuillJS's operations and it worked great!
       | 
       | The main advantage of that integration would be a ready made
       | Azure service + future integration with Microsoft Office.
       | 
       | (I used to work on the Fluid Framework)
        
       | colesantiago wrote:
       | Interesting that there isn't any mention or use of CRDTs, that
       | would have been the first thing to see from this document.
       | 
       | Nevertheless, it is still refreshing to see a different way of
       | doing things like collaborative drawing without them.
       | 
       | Curious to know of this design decision.
        
         | zffr wrote:
         | > Drawpile solves the second problem in the most simple way
         | possible: all edits go through a central server, which
         | distributes them to all connected clients (including the
         | originator) in the same order. So, when a client receives
         | commands from the server, it knows all the other clients also
         | received, or will receive, them in the same order.
         | 
         | You don't need CRDTs if you have a centralized server and
         | require clients to be connected to make edits. CRDTs are useful
         | when you want to enable collaboration in a decentralized way.
        
           | colesantiago wrote:
           | So does this mean Figma is decentralized since they are also
           | using CRDTs?
        
             | nh2 wrote:
             | "You don't need X for centralised" does not imply "if you
             | have X then you're decentralised".
             | 
             | Beyond that simple logic: https://www.figma.com/blog/how-
             | figmas-multiplayer-technology...
             | 
             | > Figma isn't using true CRDTs though. CRDTs are designed
             | for decentralized systems where there is no single central
             | authority to decide what the final state should be. There
             | is some unavoidable performance and memory overhead with
             | doing this. Since Figma is centralized (our server is the
             | central authority), we can simplify our system
        
               | colesantiago wrote:
               | Interesting, so this must mean that Figma must be using
               | CRDTs wrong then, but it works for them anyway since they
               | aren't using "true CRDTs".
        
       | dang wrote:
       | Only one small past related thread:
       | 
       |  _Drawpile is a free software collaborative drawing program_ -
       | https://news.ycombinator.com/item?id=17141368 - May 2018 (4
       | comments)
        
       ___________________________________________________________________
       (page generated 2021-08-17 23:01 UTC)