2 ms·
The trick is that they only need to agree on how multiple simultaneous edits merge. Each URL specifies a Merge-Type. If the algorithms implement it, they can m
by toomim 7y ago
The trick is that they only need to agree on how multiple simultaneous edits merge.
Each URL specifies a Merge-Type. If the algorithms implement it, they can merge conistently.
- skybrian 7y agoIt seems like that's saying each client has to implement all the algorithms in use? So, no magic here, but a choice among standardized algorithms?
- toomim 7y agoAlmost -- you can actually have different algorithms that still merge the same way. See our interoperability demo here: https://braid.news/demo/interoperate https://braid.news/demo/interoperate This demo shows a CRDT and OT system interoperating. They use different algorithms, but merge (almost) the same way! (I say "almost" because we aren't using the same sorting function to break ties when two people edit in the same location. But this could be fixed.) In practice, you can certainly specify a merge-type in terms of an algorithm, by saying "this resource merges in the way that the Automerge algorithm merges." But you can also state it abstractly -- for instance, as we do here: https://braid.news/demo/interact#a-merge-type-defines-how-to-flatten-bubbles-in-space https://braid.news/demo/interact#a-merge-type-defines-how-to...