档案库 · 产品创意 · 产品决策 · 2019–2022
Muse 2.0 将本地优先同步引入商业白板应用,把 CRDT 带出实验室
Adam Wiggins 和他的小团队在 2022 年发布了 Muse 2.0,核心功能是客户端 CRDT 同步——在 Hacker News 获得 178 分。
Muse
当时的题目
Adam Wiggins co-authored the 2019 essay Local-first software at Ink & Switch, arguing that users lost ownership of their data when files moved from disks to cloud SaaS. He wanted to take CRDT technology out of the lab and prove its value in a commercial product people use every day.
它是怎么成立的
Adam Wiggins 是 2019 年发表的文章《本地优先软件》的作者之一,该文章认为从文件系统向云端 SaaS 的迁移使用户成为数据的租客。2022 年,他想将文中核心技术——无冲突复制数据类型即 CRDT——“带出实验室”,放进商业产品中,从而在实际应用中验证本地优先。
该产品是 Muse,一款面向 Mac 和 iPad 的白板和笔记应用,2.0 版将本地优先同步作为主打功能。客户端同步引擎是用 Swift 编写的 CRDT;流式同步服务器是通用的 Go,不了解 Muse 的卡片、画板或墨迹。单一状态系统管理事务数据、二进制数据和瞬时数据,这样即使是抖动卡片这样的瞬时手势,也只在另一客户端实时监听时才会传输。
对用户而言,收益体现在行为层面。在离线或不稳定网络上进行的编辑在设备重新连接时会自动合并,无论断线持续多久。每份文档的权威副本保留在设备上,同步服务器充当次级备份,订阅到期可切换到“校友模式”,用户可以浏览、复制和导出数据。
发布线程获得 178 分和 153 个评论。Wiggins 和工程师 Adam Wulf 解释了模式版本控制——每次写入但可能携带版本号,旧值在读取时加以处理——将加密描述为从设计上限考虑而在 2.0 阶段实现,并引发了一场关于个人软件是否该收费订阅的激烈讨论。
妙在哪
- Wiggins 将 2.0 视为实地测试:CRDT 必须在量产应用中经得起生产规模考验,而不仅仅是停留在论文和原型阶段。
- 同步服务器保持通用性——它只搬运字节,而不理解卡片或墨迹——这使得架构向本地优先运动倡导的通用同步服务迈进了一步。
- 由于权威数据保存在每台设备上,同步中断甚至完全宕机都无法阻止工作,这反倒扭转了常见的隐私疑虑。
- 每次写入都附有模式版本号,通过读取时解析而非痛苦的迁移来处理 CRDT 最棘手的问题——模式演进。
做出来什么
Posted as a Show HN on 2022-05-24, Muse 2.0 drew 178 points and 153 comments. Wiggins and teammate Adam Wulf answered technical questions in-thread — schema versioning, data access if the company disappears, deferred end-to-end encryption — while users called the iPad app 'finally better than paper', and the thread turned into a long, substantive debate about subscriptions and data ownership.
可以借走的
将实验室级的基础设施作为主线功能放进量产产品中:真实用户、真实数据和生产压力才是大创意行之有效的唯一令人信服的证明。
后来
Show HN 犹如一份公开的路线图:团队成员表示端到端加密虽然在第 2 阶段实现,但设计之初就已考虑;关于网页版发布和更好的搜索,团队称将列入 2.x 计划;在俄罗斯 App Store 下架后,现有账户仍能继续使用完整同步功能。讨论最热烈的话题是定价——100 张卡片内免费,过期成员仍有读取、复制和导出权限——Wiggins 解释按量计费而非按功能收费,借鉴了 Notion、Dropbox 和 GitHub 的模式。
资料来源
发现哪里写错了?告诉我们。
轮到你了
你刚读完一个点子。把你手上的题目说出来,看看谁接过同样的题。
免费账号 · 3 次免费提问 · 不用绑卡