-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Phase 3: Sync Engine and Real-Time Collaboration #52593
Comments
Hello Team, As a first task of this issue, I have added my findings on #23129 PR. Thanks |
Hi @prajapatisagar Thanks for the review there. Actually, the exploration has moved now to this PR #52681 That was a good reminder though, I'm going to close that old PR now. |
I merged the initial bootstrap behind an experimental flag and added a number of todo list items to the current issue. You all feel free to own one of these tasks and iterate on it. |
Out of the list of subtasks for real time collaboration, I've created an issue for inline block commenting so there's a more dedicated space to discuss and explore: #59445 |
I found this presentation very informative, there may be some useful information for the collaborative sync engine: "New algorithms for collaborative text editing" by Martin Kleppmann (Strange Loop 2023) Specific points to highlight: Automerge is a CRDT (conflict-free replicated data type) engine with a variety of API libraries available (including JS!). Of particular interest it the Peritext merge algorithm which is designed to handle issues specific to merging richtext/markup. I could see this being very useful for creating more elegant revisions for block content. Screen.Recording.2024-05-01.at.16.42.29.movAs an example using that technology, there's a prototype collaborative text editor called Upwelling, which is kind of like a combination of Google Docs and git. There's likely some design and technical inspiration there, particularly for asynchronous collaborative editing. |
This is the overview issue for the collaborative editing project as defined on this post.
The goals are multiple here:
Tasks:
The text was updated successfully, but these errors were encountered: