britannio
Joseph explains the algorithm on YouTube too: https://www.youtube.com/watch?v=rjbEG7COj7o

It's great work, combining the best of OT and CRDTs.

matlin
Seph (author) also has a reference implementation in Typescript: https://github.com/josephg/eg-walker-reference

I've stated before that I think the main thing holding back collaborative text / sequence CRDTs is integration with a production database.

Eg-walker looks interesting because it might lend itself to be integrated into a database because the operations are immutable and only appended. However, to demonstrate the effectiveness of these algorithms library authors (see Yjs, DiamondTypes, etc) build stand-alone data structures (usually specialized search trees) that most databases already provide.

Personally, I've been trying to adapt a Piece Table[1] to be collaborative and stored in Triplit[2] which runs on both client and server and already implements logical clocks but I might see how well I can adapt this algorithm instead!

1. https://en.wikipedia.org/wiki/Piece_table 2. https://github.com/aspen-cloud/triplit

Palmik
Saw the YouTube video when it was first posted, and it could be a great match for a new project I have in mind.

Is there a practical implementation yet that supports not just strings, but also lists and maps?

Would be great to see it integrated into yjs / y-crdt.

abdullahkhalids
Do collaborative whiteboard like software use the same algorithms, or are there more suitable algorithms for picture collaborations?
eclectic29
If Martin Kleppmann is the author I know this stuff will be worth watching out for.
canadiantim
Looks like amazing work, congrats!! Excited to see implementations in the wild, definitely would be keen to play around with.
1attice
s/e.g./EG/