Why send all data for a workspace to remote after applying changes from remote?
Can I know why after applying changes from remote, then send all data for a workspace to remote? What if a workspace is 50MB large? I am not sure if this could happen. Just assume an embedded image encoded in the workspace underlying doc. Could you please explain a bit about the performance consideration here?
The jwst-rpc is aims to compatible yjs's official sync protocol. In the design of the official protocol, the situation you mentioned is possible and acceptable.
If you need horizontal scaling, redesigning a set of synchronization protocols is a better choice.
On the other hand, the apply 50m size ybinary does take some time for yjs, but in our Rust implementation, the speed will be faster.
During the unstable period of the blocksuite editor, the affine server often receives updates of tens of MB in size due to frequent modifications by the editor, and our server can still handle it with very low consumption.
@darkskygit thanks for quick response.
-
Horizontal scaling For the absence of horizontal scaling,
jwst-rpcmight be better to use on the client side. And the y-redis can scale horizontally, which is also agnostic to the domain logic like the workspace -> space -> block data structure abstraction, . But I prefer a Rust implementation. Are you guys interested in a Rust port please? -
Affine server
Just checked the source code of AFFiNE. I didn't find a direct dependency on octobase. Is the implementation not open sourced please?
@darkskygit thanks for quick response.
- Horizontal scaling For the absence of horizontal scaling, might be better to use on the client side. And the y-redis can scale horizontally, which is also agnostic to the domain logic like the workspace -> space -> block data structure abstraction, . But I prefer a Rust implementation. Are you guys interested in a Rust port please?
jwst-rpc- Affine server
I checked the source code of AFFiNE. I didn't find a direct dependency on octobase. Is the implementation not open sourced please?
affine server has adopted a redesigned private protocol for sync, which is different from implementations like ysync/yredis, we do not have the manpower or plans to make it into an independent open-source repository now
@darkskygit It is sad to hear that. I am adding real-time collaboration functions for my pdf reader and editor based on octobase. Though it is still in the prototype stage, I am very looking forward to your library. Please consider open-sourcing it when possible. I will spend lots of time tailoring it instead of reinventing the wheel.
For now, could I know the high-level design architecture of your private sync implementation please?