实时协作建议:引入 CRDT 实现高效多端协作 #561
Replies: 3 comments
-
|
CRDT我了解过,以前打算用yjs实现,感谢提出新的想法 |
Beta Was this translation helpful? Give feedback.
-
|
这个算是大重构,做好就是4.0版本了,或者3.0先拖延一下,开发完这个后再发布3.0 |
Beta Was this translation helpful? Give feedback.
-
|
与渲染性能的提升和功能稳定性相比, crdt 所带来的多端协作 只算做锦上添花( 且现有文件保存格式的内部结构也有可能受此影响, 似乎不适合基于2.0的版本号来更新, 除非不会带来根本性的影响), 且就算完成需求, 对多数用户来说是并不会带来体验上的差别的(多端协作终究是少部分人的需求), 因此原有路线就很不错 只是提出了一个想法(源于项目主页上的未来待实现), 但不希望影响到 Project Graph 的正常发展, 毕竟crdt的效果是未知的, 现有crdt库是否适合Project Graph的数据结构也是有待验证的
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
我注意到 Project Graph 的规划中提到「实时协作:通过共享项目文件或 Git 集成跨团队同步编辑」的功能,这点非常令人期待!
建议可以考虑在未来的协作同步机制中引入 CRDT(Conflict-free Replicated Data Type) 模型来解决多用户同时编辑时的冲突合并与一致性问题。
目前有一个新兴起的开源实现 —— Loro
如果 Project Graph 的实时协作模块计划支持多人共享项目拓扑、依赖关系或任务节点状态,Loro 将能很好地支撑这类 多源并发修改、自动合并、最终一致性 的实时协作和离线优先自动合并场景。
推荐参考:
这将减少自研同步协议的复杂度。
至于同步服务, 可以提供一个可自部署的服务器的方案, 以便用户能够在局域网内搭建协作环境,满足团队内部安全高效的实时协作需求。
有条件的用户也可在公网环境中部署该服务,甚至可以自愿将其服务地址贡献至公开可用的节点列表(只是设想),方便其他用户临时使用或测试。
当然, 所有公开服务的使用均需由用户自行承担安全与隐私风险,毕竟项目官方无法对第三方服务的可用性或数据安全性作出任何保证 —— 除非官方自行部署此类公开服务以满足对安全有强烈需求的广大用户 ( 不过这对开源项目来说成本太高了, 也许只能通过针对性收费来维持此类功能的服务器费用 )
Beta Was this translation helpful? Give feedback.
All reactions