Collaborative Text Editing Without CRDTs or OT
This blog post presents a novel approach to collaborative text editing that avoids the complexities of Conflict-free Replicated Data Types (CRDTs) and Operational Transformation (OT). The core idea is to assign globally unique IDs to each character and use "insert after" operations. The server updates its state literally based on these operations, while clients employ server reconciliation for optimistic local updates. This approach is simpler and more flexible than CRDT/OT, allowing for customized operations and features like handling rich text and access controls. An accompanying npm library, Articulated, aids in implementation.
Read more