Joseph explains the algorithm on YouTube too: <a href="https://www.youtube.com/watch?v=rjbEG7COj7o" rel="nofollow">https://www.youtube.com/watch?v=rjbEG7COj7o</a><p>It's great work, combining the best of OT and CRDTs.
Seph (author) also has a reference implementation in Typescript: <a href="https://github.com/josephg/eg-walker-reference">https://github.com/josephg/eg-walker-reference</a><p>I've stated before that I think the main thing holding back collaborative text / sequence CRDTs is integration with a production database.<p>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.<p>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!<p>1. <a href="https://en.wikipedia.org/wiki/Piece_table" rel="nofollow">https://en.wikipedia.org/wiki/Piece_table</a>
2. <a href="https://github.com/aspen-cloud/triplit">https://github.com/aspen-cloud/triplit</a>
I've seen a comment from the YT page:<p>> While the downside of OT is p2p, the one up side is that you get GIT like history that is super valuable for us especially if we want to build a CDC system.<p>How trivial would it be, to implement a CDC system from a CRDT. Does anyone know any github repos or any documentation I could refer to? Thanks
Saw the YouTube video when it was first posted, and it could be a great match for a new project I have in mind.<p>Is there a practical implementation yet that supports not just strings, but also lists and maps?<p>Would be great to see it integrated into yjs / y-crdt.