Real Differences between OT and CRDT in Correctness and Complexity for Consistency Maintenance in Co-Editors
OT (Operational Transformation) was invented for supporting real-time co-editors in the late 1980s and has evolved to become a core technique used in today's working co-editors and adopted in major industrial products. CRDT (Commutative Replicated Data Type) for co-editors was first proposed around 2006, under the name of WOOT (WithOut Operational Transformation). Follow-up CRDT variations are commonly labeled as "post-OT" techniques and have made broad claims of superiority over OT solutions,
... n terms of correctness, time and space complexity, simplicity, etc. Over one decade later, however, OT remains the choice for building the vast majority of co-editors, whereas CRDT is rarely found in working co-editors. Why? Based on comprehensive review and comparison on representative OT and CRDT solutions and co-editors based on them, we present our discoveries in relation to this question and beyond in a series of three articles. In prior work, we have revealed that CRDT is like OT in following the same general transformation approach and CRDT is not natively commutative for concurrent operations in co-editors, which helps to clarify what CRDT really is and is not for co-editors. In this article, we reveal OT and CRDT differences in correctness and complexity by dissecting and examining representative OT and CRDT solutions. We explore how different basic approaches, i.e. the concurrency-centric approach taken by OT and the content-centric approach taken by CRDT, had resulted in different technical challenges, correctness and complexity issues, and solutions. Moreover, we reveal hidden algorithmic flaws with representative CRDT solutions, and discuss common myths and facts related to correctness, time and space complexity, and simplicity of OT and CRDT. We present facts and evidences that refute CRDT claimed advantages over OT.