DEV Community

Discussion on: Collaborative text editing with Logoot

Collapse
 
reinmarpl profile image
Piotrek Koszuliński

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 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 :).

Collapse
 
ravernkoh profile image
Ravern Koh

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 😆.