Atomic Commits describe how resources update. I'm happy with part of it, but I'm also having some doubts:
Merging isn't clear yet and requires an implementation (at very least in the server)
Atomic Commits doesn't have a formal proof of eventual consistency
No support for inserts / deletions in text, only replace an entire k/v pair.
No support for formatting changes
No cursor positioning
No great front-end
Doing all these things takes a lot of time. It might be nice if we could just use something like Yjs or Gun to deal with all the state updates.
However, there are some things I still want to keep, ideally:
It would be nice if the changes themselves are understandable. Atomic Commits are pretty simple Yjs seems pretty complicated, which means the user is forced to use a library, and the libraries take a lot of time to build.
signatures are cool, because we get audit logs
I want to persist the changes and allow re-applying them to build a version history
What would it mean to use yjs in atomic-server
Add a yjs action to Commits, like we have set and delete.
Atomic Commits describe how resources update. I'm happy with part of it, but I'm also having some doubts:
Doing all these things takes a lot of time. It might be nice if we could just use something like Yjs or Gun to deal with all the state updates.
However, there are some things I still want to keep, ideally:
What would it mean to use yjs in atomic-server
yjs
action toCommit
s, like we haveset
anddelete
.yjs
StateVector