I wrote “Collaborative Text Editing” a few weeks ago. Microsoft’s take on this matter is Fluid Framework (demos; Github). Actually, it is “a collection of client libraries for distributing and synchronizing shared state,” but it seems MS uses it primarily for implementing collaborative realtime editing. In fact, I found out about it in “Collaborative real-time editor – Wikipedia.”
According to its FAQs, Fluid relies on a Total Order Broadcast (“TOB” hereafter), not on either Operational Transforms (OT) or on Conflict-Free Replicated Data Types (CRDT). Supposedly TOB is closer to the latter than to the former; the difference with CRDTs is the existence of its assumption that update-based operations are ordered. Fluid clients always require a Fluid server for syncing amongst them, not just at the initial setup time, so it is not a P2P solution. However, it is not that you have to use one preexisting server; you can host a Fluid server by yourself.
A quick idea (without fully understanding all the intricacies): isn’t it possible to combine TOB and OT or CRDT? In this modern computing world, total ordering can probably be achieved most of the time if all parties are online. It is when there are parties that are not online that’s problematic.
It appears Microsoft 365 allows only real-time “co-authoring,” which seems in line with what Fluid is capable of:
- “Collaborate on Word documents with real-time co-authoring – Office Support“
- “Edit in real time with friends and family – Office Support“
Postscript: I received a comment on Twitter from Mr. Sam Broner, who is actually working on Fluid. This came as a complete surprise to me!
「Microsoft’s Fluid Framework for Collaborative Realtime Editing」への3件のフィードバック