Date: 10/22/2026Category: GoWind风行Tag: Golang, GoWind, CRDT, 协同编辑, CMS
本文回答一个问题:两个人同时编辑同一篇富文本,从浏览器到 Go 服务端再到数据库,中间要处理哪些协议、锁、持久化与竞态?
GoWind CMS 的帖子/页面编辑页支持多人同编:在线光标、无冲突合并、断线恢复、离线内容回流。后端没有用任何现成的协同 SaaS,而是在 Go 侧搭了一套 Yjs 兼容的 WebSocket 服务(COLLAB_ADDR,默认 :6602),与 TipTap 的 Collaboration 扩展直连。这个功能的实现从 v1 到 v2.5 演进了三版(编辑锁 → 持久化自愈 → 服务端权威种子化),每一版解决一类问题,踩过的坑都留在了代码注释里——这篇按演进顺序拆。
