Very interesting article – I think it's a good introduction to real-time collaboration algorithms. However, I'd like to clarify a couple of things about OT.
You wrote that:
This means that when applying OT to two separate documents, it is not always guaranteed that they will end up being the same.
This isn't true. A correct OT implementation guarantees that both clients have the same content. Without eventual consistency, there's no collaboration. Besides, a CRDT implementation can be buggy as well, so it's not a downside of OT – that's a downside of using a broken and unproven software :)
I agree, though, that OT is hard. We're four years into the project now. It's there, it works, but there's a lot we can still improve inside. But what we learnt during the course of action is that real-time collaboration is about much more than resolving a couple of conflicts. It's the whole system that needs to be coherent and for some reasons, the only proven rich-text editors which support real-time collaboration that I know use OT. Perhaps it's easier in case of simpler text editors (with a flat model; whereas advanced rich-text editors require a tree structure), but I wouldn't cross out OT just like that :).
Woops! Guess I got influenced by the articles that I used for research 😅.
After reading up more on OT, I am inclined to agree with you. I think that OT and CRDTs are both pretty cool solutions to realtime collaboration. Perhaps my next deep dive will be into OT 😆.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Hi! CKEditor 5's developer here.
Very interesting article – I think it's a good introduction to real-time collaboration algorithms. However, I'd like to clarify a couple of things about OT.
You wrote that:
This isn't true. A correct OT implementation guarantees that both clients have the same content. Without eventual consistency, there's no collaboration. Besides, a CRDT implementation can be buggy as well, so it's not a downside of OT – that's a downside of using a broken and unproven software :)
I agree, though, that OT is hard. We're four years into the project now. It's there, it works, but there's a lot we can still improve inside. But what we learnt during the course of action is that real-time collaboration is about much more than resolving a couple of conflicts. It's the whole system that needs to be coherent and for some reasons, the only proven rich-text editors which support real-time collaboration that I know use OT. Perhaps it's easier in case of simpler text editors (with a flat model; whereas advanced rich-text editors require a tree structure), but I wouldn't cross out OT just like that :).
Woops! Guess I got influenced by the articles that I used for research 😅.
After reading up more on OT, I am inclined to agree with you. I think that OT and CRDTs are both pretty cool solutions to realtime collaboration. Perhaps my next deep dive will be into OT 😆.