It uses a central authority, which relaxes some constraints, but there are very interesting technical considerations also applicable to decentralization (which I am more interest in).
ogadaki
01/23/2020, 2:41 PM
In particular I am happy to see that fractional indexing is used to manage children order. I have planned to use it as well and seeing it in a product like Figma makes me confident about it.
ogadaki
01/23/2020, 2:43 PM
More precisely, I have played a bit with CRDT (Casual Trees, in particular) with the objective to use it for offline first collaborative editing of tree structures, and this article makes me confident in some of my findings (CRDT, fractional indexing and hierarchy as parent id in children) and spots some important points (warn about cycles, and undo strategy).
e
Edward de Jong / Beads Project
01/23/2020, 7:40 PM
Centralized authorities are the way to go to make things like this easy to implement. The Figma people have done a really great job and i predict great success for that firm.
o
ogadaki
01/23/2020, 9:23 PM
In fact, CRDT is a way to manage concurent editing without a central authority. It is achieved by modelling things as an ordered list of events (an event log) which ordering doesn't depends on an authority. So when several peers communicates their events they all see exactly the same event log, which produce exactly the same document state.
ogadaki
01/23/2020, 9:24 PM
I agree Figma has done a great work. With a focus on as simple as possible to make it works.
t
Tak Tran
01/27/2020, 8:51 AM
I recently saw this video that shows an interesting implementation of CRDTs in a real life app too: