Summary
In part 1 of this series, we found that users generally view the most popular collaborative text editing algorithms (including the most popular library, Yjs) as silently corrupting their documents when the algorithms resolve direct editing conflicts. We argued that, while this is potentially ok for live collaborative editing (since presence cursors help users to avoid direct editing conflicts), this property makes them generally wholly inappropriate for the offline case, as users will have no ability to avoid such conflicts.
This time, in part 2, we’re going to argue that these same popular algorithms—and Yjs in particular—are also currently inappropriate for the live-collab case. Mostly it comes down to two points:
- We’ll describe several specific challenges we experienced as we tried to bring Yjs to our production text editor.
- We recommend a less-well-known alternative to Yjs because it is uniformly better on every axis except truly-masterless peer-to-peer editing.