项目描述
翻译内部合并必须无冲突,因此我们期望基于 CRDT 或操作转换的引擎,而不是天真的“最后写入胜出”方案。来自不同客户端的同时编辑必须在每台机器上收敛到完全相同的最终状态,无论数据包传递顺序和网络延迟如何。离线工作对我们很重要:失去连接的用户应该能够继续本地编辑,他们的更改在连接恢复时应自动和解,无需合并对话框且不丢失输入的字符。我们还需要完整的版本历史,带有命名快照、可视化编辑记录,以及恢复或比较任何先前修订的能力。
传输应基于 WebSocket,具有自动重连和背压处理,整个系统必须能够在多个文档和多个并发编辑者之间扩展,以便服务器不会成为瓶颈。我们要求您将此视为生产工作:我们关心干净的 API、围绕合并逻辑的测试和清晰的文档,以便我们的团队能够在未来维护该项目。
— 每个用户的实时光标、选择和在线状态指示器
— 具有收敛保证的 CRDT/OT 合并引擎
— 离线编辑,重连时自动和解
— 嵌入评论、讨论线程和完整版本历史