4 ms·
Figma's interesting because it's not strictly speaking a CRDT. It borrows heavily from some of the CRDT ideas, but it's really an editable tree where most chang
by danielvaughn 3y ago
Figma's interesting because it's not strictly speaking a CRDT. It borrows heavily from some of the CRDT ideas, but it's really an editable tree where most changes are atomic and thus use a last-writer-wins approach. That, and re-ordering tree nodes uses fractional indexing.
- auggierose 3y agoYes, I think most practical solutions are not strictly CRDTs, not even Automerge, I think.
- wim 3y agoRight, there are quite some collaborative applications for which a hybrid approach is useful. We're building a collaborative editor (https://thymer.com https://thymer.com) for example, where the underlying data structure is also a tree (as the text documents also support outliner-like features, so a flat list of characters/lines isn't enough). To avoid tree conflicts, insert and move operations look more like OT than CRDT however, where other updates can use a simple CRDT mutation.
- Rapzid 3y agoAutomerge is interesting as it's an op-based CRDT system vs state-based.. This should make use cases involving a central authority easier to work with but.. Their docs lack any detail useful to taking advantage of this haha.
- continuitylimit 3y agohttps://web.archive.org/web/20230223081016/https://www.figma.com/blog/how-figmas-multiplayer-technology-works/ https://web.archive.org/web/20230223081016/https://www.figma... It’s a client-server architecture with a bit of CRDT inspired algorithm sprinkle on for offline mode. The name of the game remains consensus and CRDTs convoluted approach is there to server a niche in the spectrum of distributed consensus. It is slower, more complex, and less transparent. I wouldn’t really use it outside of long lived and erratic P2P nodes — CRDTs solve that problem and that is what they are really designed for: partition prone, long lived, distributed, peer to peer, collaborative global state changes.