Skip to content
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

Explore realtime collaboration #46

Open
kof opened this issue May 17, 2022 · 1 comment
Open

Explore realtime collaboration #46

kof opened this issue May 17, 2022 · 1 comment
Labels
complexity:high Multiple weeks of work or more type:research Just research, no implementation

Comments

@kof
Copy link
Member

kof commented May 17, 2022

There is a lot of things to consider when building a realtime multiplayer UI, here are a few:

  1. DX and State management
    • We are building on top of immer, using immerhin as a Developer facing interface for transactions. This interface results in JSON patches, after that we can decide where to go considering all other aspects.
  2. Server architecture
    • How will this work with cloudflare workers type of env and a single container env?
  3. Database
    • Can we do that on top of SQLite?
    • RxDB?
  4. Conflicts resolution
  5. Change types:
    • Ephemeral (not important - can be dropped, doesn't need permanent storage)
    • transactional (atomic, very important, has context, needs permanent storage, e.g.: color: was changed to red)
    • blob (non-atomic, e.g. text has changed, no idea what part)
  6. Offline-first

Other links

@kof kof added complexity:high Multiple weeks of work or more area:designer type:research Just research, no implementation labels May 17, 2022
@TrySound
Copy link
Member

TrySound commented Nov 5, 2022

Lexical supports yjs CRDT implementation out of the box. We can consider it when start building collaboration.

https://github.com/yjs/yjs
https://lexical.dev/docs/collaboration/react

@kof kof removed the area:builder label Mar 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
complexity:high Multiple weeks of work or more type:research Just research, no implementation
Projects
No open projects
Status: No status
Development

No branches or pull requests

2 participants