EP.009 / TRANSCRIPT

Redis:创建者怎样成为参与者逐字稿

一个项目怎样从个人作品变成公共基础设施

FINAL MASTER / release-approved

回来以前,先问一句

0:00

二零二四年,Salvatore Sanfilippo 已经四年多没有看过 Redis 的源码。

没有看 commit message,也没有再去判断后来的人把它改成了什么样子。

偶尔需要 Redis,他就像一个普通用户那样下载源码,编译。

他输入的命令只有一个词。

make

代码仍然很容易构建。Sanfilippo 说,他看到这一点很高兴。

[001]

引用 [001]

supports

本人 2024 文章支撑离开时长、未看源码与 make 动作;旁白不补造电脑、房间或命令输出。

定位 From where I left opening: about 1620 days away, no source code or commit messages, occasional download and compile, typed make

查看完整证据关系

但同一篇文章里,他还写了另一件事。

Redis 社区正在分裂。他想,也许自己可以重新参与,也许可以在公司和社区之间做一座桥。

于是他给 Redis 的 CEO Rowan Trollope 写了一封邮件。

邮件要问的不是 Redis 能不能编译。

而是:自己还能不能以某种身份回来。

一个项目的创建者,为什么要先问一家公司,自己能不能回到这个项目?

他离开的四年里,Redis 究竟变成了谁的东西?

[002]

引用 [002]

supports

文章支撑社区分裂、设想角色和主动联系 CEO;问题句是节目入口,不把邮件写成逐字对话。

定位 From where I left: community fragmenting, bridge/evangelist role, Time in NY, email to Rowan Trollope asking to return in some capacity

查看完整证据关系

先有一个问题

1:22

把时间拨回二零零九年。

那时 Redis 还不是一个等待商业化的开源基础设施。甚至还没有几个人知道这个名字。

Sanfilippo 和合伙人 Fabio Pitrola 在意大利做过几项 Web 服务。其中一项叫 LLOOGG。

它把网站正在发生的访问直接展示出来。不是等一天结束,再给站长一张汇总报表;而是有人打开网页、点击链接,这些动作就不断出现在屏幕上。

LLOOGG 最初把数据放进 MySQL。用户增多以后,这种实时写入和读取越来越难处理。

Sanfilippo 后来回忆,他们遇到问题时的习惯不是先寻找一个已经存在的类别,而是自己造一个解法。解决问题当然重要,但更重要的是,这件事要好玩。

[003]

引用 [003]

supports

三份本人材料交叉支撑 LLOOGG、MySQL 与 playful environment;不把后见回忆伪装成某一天的现场思想。

定位 LLOOGG README concept and MySQL-to-Redis account; historical Redis README; 2020 exit statement opening on playful problem solving

查看完整证据关系

他需要的也不只是把一个计算结果暂时放进内存。

如果只保存一段不透明的 value,应用每次想增加一个访问、从队列里取出一项、判断一个成员是否存在,都要先把整段数据取回来,自己修改,再写回去。

Sanfilippo 想让服务器直接理解这些动作。

所以早期 Redis 里出现了 string、list、set。键仍然指向值,但值不再只是一个字节盒子。服务器知道它是什么数据结构,也提供对应操作。

过期、复制和不同语言的 client 也很早就进入公开方向。

这里真正留下来的,不只是某一个二进制文件,而是一种让程序员表达问题的方式。

不过在二零零九年,这一切还只是一份正在变化的设计。

[004]

引用 [004]

supports

口播只把早期已公开能力写入 2009;当前文档用于解释模型,不倒推 streams 等后来的类型。

定位 2009 announcement and preserved source history for early strings/lists/sets, expiration, replication and clients; current docs only for explaining the data-type model

查看完整证据关系

二月二十五日,Redis 出现在 Hacker News。当天的讨论里,已经有人写出了 Ruby client。

三月,Sanfilippo 又写了一篇公开介绍。到了六月十九日,他把 LLOOGG 从 MySQL 切换到 Redis。

八天后,他在邮件列表记录了一次当时的生产快照:Redis 零点九零零,一主一从,累计执行大约五千万条命令。

这是一个开发者对单一工作负载的自报,不是性能基准,更不是市场份额。

但它证明一件更朴素的事:Redis 不是先写完,再寻找一个能说明它有用的案例。LLOOGG 一直是它的试验场。

[005]

引用 [005]

supports

时间与数量按同期材料表述;明确限制为作者自报的 LLOOGG 单一部署。

定位 HN launch 2009-02-25 and early Ruby client comment; 2009-03-06 announcement; production mail on 2009-06-19 migration and eight-day command count

查看完整证据关系

Redis 最早的公开记录,写的还不是一份公司路线图。二零零九年的介绍把它写成一个仍在快速变化的实验性项目;三个多月后,它已经进入 LLOOGG 的真实流量。

[006]

引用 [006]

supports

本段旁白只使用同期文字事实;Changelog #45 试听候选因原始录音噪声淘汰,ASR 定位稿不进入口播。

定位 2009-03-06 public introduction and 2009-06-19 LLOOGG production migration record

查看完整证据关系

一个实验性的个人项目,可以由兴趣决定明天写什么。

但公开项目会产生另一种力量。

外部程序员写 client,提交 patch,把 Redis 放进 Sanfilippo 没有见过的系统。有人用 list 做队列,有人拿 set 组织关系,也有人只是把它当成很快的 cache。

这些用法让 Redis 变得更有价值,也让每一次改变更昂贵。

一个数据结构一旦成为公共命令,作者就不再只面对自己的代码。他开始面对别人的数据、延迟、故障,以及升级以后仍然能够工作的期待。

[007]

引用 [007]

supports

材料支撑外部参与怎样扩大项目;‘公共命令成为承诺’是节目对兼容责任的归纳,不量化采用规模。

定位 Sanfilippo fifth-birthday account of early users, patches, clients and adoption; launch discussion for immediate external client activity

查看完整证据关系

让别人支付时间

4:43

二零一零年,VMware 开始赞助 Redis 的开发。

这份安排后来也包括 Pieter Noordhuis。

VMware 支付两个人的工作时间,但 Redis 核心仍然按 BSD 许可证发布。赞助关系没有自动变成项目所有权。

对 Sanfilippo 来说,最直接的变化是,他的一天可以用来写 Redis,不必在业余时间和收入之间来回切换。

几年后他回忆,全职赞助让开发速度明显加快。

[008]

引用 [008]

supports

材料交叉支撑赞助顺序、人员与全职开发效果;不把雇佣或赞助等同于 IP 控制。

定位 2010 Pieter announcement, 2013 Pivotal interview, historical sponsor page and 2011 Changelog self-description

查看完整证据关系

VMware 之后是 Pivotal。

二零一五年,Redis Labs 接替 Pivotal 赞助 Sanfilippo。

他专门写了一篇文章解释这个选择。

他没有自己创办一家 Redis 公司。一方面,他不希望纯开源的开发方式停下来;另一方面,他想保留陪伴家人的时间,也不想把精力放在经营公司上。

他的答案是允许一个商业生态围绕 Redis 生长。有人提供咨询,有人做托管服务,有人构建产品。而他继续从用户和代码出发,负责 Redis 的技术方向。

[009]

引用 [009]

supports

优先采用创建者自己的关系说明,并用公司公告交叉日期;不由此推定全部内部控制边界。

定位 Sanfilippo 2015 transition article on pure open-source development, family time, ecosystem and technical role; Redis Labs contemporaneous welcome post

查看完整证据关系

这是一个对他很有效的交换。

别人承担工资、销售、托管和公司经营。他获得了持续创造的时间,社区继续得到 BSD 代码。

但同一个交换还有另一面。

Redis Labs 可以从大规模托管中获得故障和负载反馈,也开始雇用更多核心开发者。项目、创建者和商业产品彼此靠得更近。

这不等于公司从一开始就控制了 Redis。它只意味着,谁付钱、谁维护、谁决定,已经不再是三个完全分开的问句。

赞助替 Sanfilippo 买回了时间。

接下来,Redis 的成功会决定这些时间必须花在哪里。

[010]

引用 [010]

supports

双面效果是关系结构归纳;不把托管反馈、雇佣核心开发者写成公司已经拥有项目的证据。

定位 2015 relationship statements and historical sponsor sequence

查看完整证据关系

喜欢的东西,变成肩上的重量

6:28

二零一四年,Redis 五岁。

Sanfilippo 在生日回顾里感谢那些最早写 client、提交 patch、提供赞助的人。他也写到另一项变化:Redis 教会他很多东西,但已经让他几乎没有时间随意 hacking。

三年后,他站在 Codemotion Milan 的台上。

以往,他会讲 Redis 的新版本;这一次,他说自己想讲一点不同的东西。

Salvatore Sanfilippo(原声): I tried basically to summarize the experience, both technological and human, of these eight years of working at Redis. You know, I like Redis, but after eight years, even something that you like starts to be a bit like a weight in your shoulder.

[011]

引用 [011]

supports

主播已确认 2017 候选的说话人、逐字、完整句界和上下文;当前 B v2 转场已通过机器 QA 与主播复听。

定位 2014 fifth-birthday reflection; Codemotion local audition candidate 009-B, source 00:00:52.52-00:01:14.66

查看完整证据关系

这份重量不是一个抽象的“项目变大了”。

只要 Redis 位于关键路径,故障就不只取决于一个 server process。容量、部署和应用怎样使用它,都可能让问题被放大。

二零一七年三月,Square 经历了一次大范围服务故障。它的 Redis 集群接近容量上限,应用对 optimistic transaction 的重试上限高达五百次,而且没有 backoff。重试制造更多压力,压力又触发更多重试。

支付、登录和 POS 相关服务都受到影响。

最终修复不是“把 Redis 重启一下”,而是降低重试,打断反馈环。

这不是 Redis 独自造成的事故。恰恰相反,它说明当 Redis 和应用语义纠缠在一起,维护对象早已超出一个 server process。

[012]

引用 [012]

supports

事故复盘支撑反馈环与影响;明确不把根因简化为 Redis 单点故障。

定位 Square incident timeline: near-capacity Redis, optimistic transaction retries capped at 500 without backoff, payment/login/POS impact and retry reduction recovery

查看完整证据关系

Redis 的重要性也不是所有人都以同一种方式依赖它。

同一年,GitHub 公开了一次相反方向的工程选择。他们发现,一些本应持久保存的数据被放进了 Redis。于是把这部分 source of truth 迁到 MySQL 和自己的存储层,同时保留其他 transient cache 用法。

这不是“Redis 行”或者“Redis 不行”的裁决。

缓存丢失可以重建。持久数据丢失却可能没有来源。相同的 Redis 命令,放在不同责任上,会产生完全不同的维护代价。

项目越流行,Sanfilippo 越不能只设计一个漂亮的数据结构。他还要判断,哪些能力应该进入核心,哪些行为不能破坏,哪些问题根本不该由 Redis 承担。

[013]

引用 [013]

supports

案例支撑责任取决于数据语义;不把单一迁移外推为所有 Redis 部署的最佳实践。

定位 GitHub engineering migration of persistent source-of-truth data while retaining transient Redis uses; current Redis persistence modes for terminology boundary

查看完整证据关系

二零一八年,商业边界开始进入公开冲突。

Redis Labs 把一部分 Redis 模块从 AGPL 改为 Apache 2.0 加 Commons Clause。公司公开说明的目标,是限制别人把这些模块直接作为商业托管服务出售。

Sanfilippo 当时强调,变化针对模块,不是 Redis 核心。他写下的公开承诺是:核心 Redis 现在是、也将保持 BSD。

这句话不能被剪成四年后剧情反转的证词。

它说明的是二零一八年的安排:公司把商业限制放在模块一侧,BSD 核心仍然开放。

同一年发生的另一项动作,要到二零二一年公司更名公告里才被公开说明。按照那份后见公告,Sanfilippo 在二零一八年把 Redis 项目的知识产权和商标转让给了 Redis Labs。

模块许可证、核心代码许可证、IP 和商标,是不同对象。

它们正在把 Redis 的法律控制重新分配,但这还不是 Sanfilippo 离开的时刻。

[014]

引用 [014]

supports

把模块、核心许可证、IP 与商标分开;权利转让目前按 2021 公司后见公告表述,不推定 2024 决策动机。

定位 2018 Redis Labs and Sanfilippo module-license statements; 2021 company retrospective on 2018 IP and trademark transfer

查看完整证据关系

把手放开

10:07

二零二零年六月三十日,Sanfilippo 发布《The end of the Redis adventure》。

他写得很清楚。

最初,他在 building。他在造一个东西。

后来,他的工作变成保证 Redis 尽可能 useful、reliable、correct、fast、secure。大部分注意力用来检查其他开发者对代码的反馈,判断应该怎样改。

接着是那句几乎不需要解释的话:

I never wanted to be a software maintainer.

[015]

引用 [015]

supports

关键英文为本人原文;中文旁白保留 building 与 maintenance 的工作定义差异。

定位 The end of the Redis adventure paragraphs on work shifting from building to reliability/correctness/security review and never wanting to be a maintainer

查看完整证据关系

他不是说维护不重要。

相反,他说,这正是 Redis 当时需要的工作。

冲突在于,他写代码是为了表达自己。他把代码看成 artifact,首先希望它在某种意义上是美的。有一句更极端的自我描述:他宁愿被记住为一个不好的艺术家,也不愿只做一个好的程序员。

一个公共基础设施需要维护者压低个人表达。它要的是连续、克制、审查和可预期。

一个把编程当作表达的人,却会在这种成功里越来越少地表达自己。

他已经把这段关系拉得太久。

所以,他决定退出 Redis maintainer 的位置。

[016]

引用 [016]

supports

人物冲突来自本人公开自我定义;不诊断 burnout,也不虚构当时心理活动。

定位 The end of the Redis adventure on code as expression/artifact, beauty, bad artist versus good programmer, and stepping back

查看完整证据关系

退出并不是把仓库留在那里,然后消失。

Sanfilippo 请长期与自己协作的 Yossi Gottlieb 和 Oran Agra 接手维护。

他甚至明确拒绝参与设计下一套开发治理。因为设计“以后大家怎样维护”,正是所有维护任务里最 meta 的那一项,也是他最想离开的工作。

同一天,Redis 公布从 BDFL 和 sole maintainer 转向小型 core team 的治理方案。

几天后公布的五人团队,成员来自 Redis、AWS 和 Alibaba。

这是一次工程交接,也是一项关于人的实验:Redis 第一次需要公开证明,没有创建者,它也能继续接受 patch、发布版本、处理分歧。

[017]

引用 [017]

supports

个人说明与治理公告分别固定退出和接替结构;不把当时的 community-driven 评价写成后续已验证结果。

定位 Sanfilippo handoff to Yossi and Oran and refusal of meta-maintenance; contemporaneous BDFL-to-core-team plan and five-member update

查看完整证据关系

他没有在这封告别信里说,自己因为反对商业化而离开。

也没有证据说明公司把他赶走。

他感谢 Redis Labs、VMware 和 Pivotal,让自己多年能够自由地为用户写开源代码。

他只是把两件事分开了。

Redis 需要继续维护。

但这份维护不再必须由他承担。

[018]

引用 [018]

supports

明确排除两种无证据因果,并记录为什么本章没有原声。

定位 2020 statement thanks sponsors and gives creative/maintenance reasons; 2025 interview retained only as an unapproved retrospective source

查看完整证据关系

没有他的 Redis

12:30

Redis 没有停下来。

新的 core team 接手。二零二一年,Redis Labs 把公司名称改成 Redis。

公司在公告里说,Sanfilippo 已经在二零一八年转让项目 IP 和商标。这让公司、项目和商标在名字上进一步重合。

但名字重合不等于所有东西都成为同一种资产。

已经按 BSD 发布的代码仍然是 BSD。未来版本由谁发布、使用什么许可证,是另一项权力。Redis 这个商标属于谁,又是第三项。

Sanfilippo 离开以后,这些区别不再只是法律文件里的细节。

它们会决定项目能沿着几条路继续。

[019]

引用 [019]

supports

公司名、商标、IP 与已发布代码许可证分开表述。

定位 2021 Redis Labs rename announcement and its account of 2018 IP/trademark transfer; version-fixed Redis 7.2.4 BSD license

查看完整证据关系

二零二四年三月二十日,Redis Ltd. 宣布,从 Redis 七点四开始,未来版本不再使用 BSD。

新的选择是 RSALv2 和 SSPLv1。

源码仍然可以查看、修改,也允许许多商业使用。但竞争性的托管服务不能再像 BSD 时代那样,直接拿新版本免费提供 Redis 服务。

这两种许可证也不是 OSI 批准的开源许可证。

八天后,Linux Foundation 宣布成立 Valkey。

参与者包括 AWS、Google Cloud、Oracle、Ericsson 和 Snap。它从换证前的 BSD 代码继续开发,选择 BSD 路线和新的基金会治理。

[020]

引用 [020]

supports

固定换证范围、托管限制、OSI 状态和八天后的 fork;不把 source-available 称为 OSI open source。

定位 Redis 2024-03-20 license announcement and MSP policy; OSI SSPL boundary; Linux Foundation Valkey launch 2024-03-28

查看完整证据关系

Valkey 不是八天里重写出来的另一个数据库。

它延续的是换证以前的代码。早期版本甚至保留 redis-serverredis-cli 这些名字的兼容链接。

这正是 BSD 许可证留下的后果。

Redis Ltd. 可以决定未来官方 Redis 的许可证,却不能追溯收回已经交给所有人的旧代码。

其他维护者可以继续那份代码,也可以继续 RESP、命令、client 和运维经验构成的接口。

所以 Redis 在这里分成了至少三件事。

一家拥有商标并发布新版本的公司。

一条可以被 fork 的代码历史。

还有一套已经进入大量程序的使用方式。

[021]

引用 [021]

supports

代码谱系与兼容链接支撑延续关系;不把项目自称兼容扩大成全部命令、复制、模块和运维完全一致。

定位 Version-fixed Redis and Valkey licenses/readmes/tree, redis-* compatibility symlinks, and Valkey governance history

查看完整证据关系

这次分叉也不只停在 GitHub 仓库里。

Fedora 决定用 Valkey 替换 Redis,并提供配置、数据和 systemd 层面的兼容迁移。

AWS 和 Google Cloud 随后推出托管 Valkey。

这些动作不能证明 Redis 已经被替代。它们证明的是,发行版、云产品和用户现在有了一条真实的分发路径,可以在保留大量既有使用方式的同时,改变实现和治理。

反过来,Microsoft 当时选择继续通过与 Redis 的许可关系提供 Azure Cache for Redis。

同一场换证没有迫使所有参与者走向同一答案。

[022]

引用 [022]

supports

只把供应商和发行版动作写成分发选择,不宣告生产市场份额或最终胜负。

定位 Fedora replacement plan, AWS and Google managed Valkey announcements, and Microsoft's contemporaneous licensed-service response

查看完整证据关系

回来,但不回到原位

15:37

现在回到序章。

Sanfilippo 再次看见 Redis 时,看到的已经不是一个仓库,而是一道裂口。

二零二五年,Changelog 再次采访他。主持人问:想改变公司和社区的关系,是他回归的原因,还是回来以后才形成的目标?

Sanfilippo 先说,离开以后,他刻意不再看提交记录;既然别人正在做,就应该让他们做下去。

Salvatore Sanfilippo(原声): But then, when I saw the community in some way, the conflict inside the community, I thought that since I know a lot of people inside the company, and I was sure that many of the technical staff, for example, it's not what they wanted happening, I said, maybe I can return. And I can return also without feeling too much stress.

[023]

引用 [023]

supports

主播已确认说话人、But then 句首依赖和完整上下文;当前 C v1 转场已通过机器 QA 与主播复听,并确认采用保留口语自我修正的机器共识稿。

定位 Changelog #631 local audition candidate 009-C, source 00:48:05.60-00:48:32.06; publisher transcript and independent ASR used for localization

查看完整证据关系

二零二四年的文章给出了更接近当时的动作。

他重新想进入技术世界,也担心社区正在分裂。

和女儿去纽约旅行时,他想到,自己也许可以做一份兼职。之后,他主动给 Rowan Trollope 写邮件,问能否以某种身份回来。

他设想的身份不是 BDFL,也不是 sole maintainer。

一边,是公司与社区之间的 bridge。

另一边,是可以写 demo、文档、文章,观察用户怎样使用 Redis,再把设计想法带回核心的 developer evangelist。

到二零二五年的采访里,他把代码上的限制说得很具体:一次只专注一个子系统。

这不是回到原位。

这是先承认原位已经不存在,再为自己设计一个不会重演退出的角色。

[024]

引用 [024]

supports

旅行只保留本人公开的最小必要动作;不补造地点、设备、邮件内容或 CEO 对话。

定位 2024 Time in NY and proposed evangelist/bridge/design role; 2025 interview continuation on focusing on one subsystem

查看完整证据关系

回归也没有让他突然变成二零二四年换证的决策者。

Sanfilippo 写得很谨慎:换证不是自己的决定。远离商业压力多年以后,他不确定自己会不会选择同一种许可证,也承认现在重新审判很容易。

但他能理解公司为什么认为云厂商改变了系统软件的商业激励。

这种态度不会替 RSAL 或 SSPL 变成开源许可证,也不会让 Valkey 这条分叉失效。

它只说明,Sanfilippo 回来面对的不是“公司背叛了自己的纯粹理想”这样简单的剧情。

事实上,Redis 刚开始流行时,他也考虑过 closed product、open core,甚至让新代码延迟六个月再进入 BSD。

是 VMware,后来又是 Redis Labs 的赞助,让他能够把更多核心代码立即交给用户,同时仍然获得报酬。

他从一开始就在回答同一个问题:谁来支付自由软件的时间?

只是不同答案,会把决定权交给不同的人。

[025]

引用 [025]

supports

本人观点只承担人物判断;许可证类别由文本和 OSI 记录固定,不把理解写成认可或法律结论。

定位 2024 return article license dilemma and retrospective on closed products/open core/delayed BSD before VMware sponsorship; license texts and OSI boundary for legal classification

查看完整证据关系

回归以后,他很快又开始设计一种新数据结构。

vector sets。

他从 sorted set 出发,尝试让 score 变成向量,重新实现索引和量化,并设计 VADDVSIM 这些命令。

在回归文章结尾,他没有保证这份代码一定会进入正式 Redis。

他说的是,自己还在做 proof of concept。

然后补了一句:Quite fun, to be honest.

十五年前,Redis 从一个具体问题和好玩的编程开始。

现在,“好玩”重新出现了。但这一次,他不必同时承诺自己将永远维护整个系统。

[026]

引用 [026]

supports

只写当时的设计与兴趣,不提前宣布提案获批、进入版本或取得市场结果。

定位 From where I left vector sets section: sorted-set inspiration, VADD/VSIM, proof-of-concept status and Quite fun

查看完整证据关系

二零二五年五月,Redis 8 又增加了 AGPLv3,和 RSALv2、SSPLv1 并列成为第三种许可证选择。

AGPLv3 是 OSI 批准的开源许可证。

公司也在公告里承认,二零二四年的动作伤害了与社区的关系,并促使 AWS 和 Google 维护 fork。

这是一项策略修正,但不是回到 BSD。它也不能被归功于 Sanfilippo 一个人。

Valkey 没有因此消失。

同年晚些时候,Amazon Ads 公开了一次约五百节点缓存的生产迁移。他们用并行集群、双写、逐步切读和回滚路径,把原有 Redis 工作负载迁到 Valkey,最后下线旧集群。

这同样不能证明 Valkey 赢了。成本和性能还同时受到硬件、版本与 AWS 定价影响。

它证明的是,兼容接口确实能降低一部分迁移成本,却不会取消迁移工程本身。

[027]

引用 [027]

supports

把 AGPL 写成第三选项而非恢复 BSD;迁移案例只证明特定路径可行,不外推市场胜负或单一性能原因。

定位 Redis 8 AGPLv3 announcement and fixed license; Amazon Ads production migration with parallel clusters, dual-write, progressive read switch and rollback

查看完整证据关系

谁拥有离开的自由

20:04

最后,再回到那条最简单的命令。

make

Sanfilippo 离开四年以后,它仍然可以把 Redis 构建出来。

但它回答不了另外几件事。

谁审查下一份 patch。

谁拥有 Redis 这个名字。

托管服务要不要和公司签协议。

社区跟随 Redis,还是 Valkey。

一个项目可以继续编译,只说明代码还活着。

一个基础设施能够让创建者离开,说明维护责任已经可以交给别人。

可责任一旦交出去,决定权也会一起离开。

[028]

引用 [028]

supports

结尾问题分别回收代码、维护、商标、商业许可与社区路径;不把 make 本身包装成所有权证据。

定位 Make action in creator return article, company/IP/trademark record, future-version license change and Valkey fork

查看完整证据关系

Sanfilippo 成功地让 Redis 摆脱了创建者。

代价是,他也失去了替 Redis 作出所有选择的权利。

赞助、公司、core team、基金会和 fork,都可以承担一部分长期维护。

没有哪一种安排是免费的。

它们支付程序员的时间,组织故障和审查,也重新分配商标、收入、路线与离开的自由。

Redis 的故事并不能证明,商业化只有一种不可避免的答案。

它证明的是另一件事。

一个由个人兴趣创造的程序,一旦被太多人需要,就必须有人为它持续付钱、承担责任、建立决定结构。

Sanfilippo 无法逃离的,不是某一种许可证。

而是这次分配。

当他再次回来,他已经不是那个能够替 Redis 作出所有选择的人。

他是一个参与者。

也终于可以重新做一个创造者。

[029]

引用 [029]

supports

最终判断限定为维护代价与控制权分配,不把商业化或某一许可证宣告为历史必然。

定位 Creator's maintenance exit and participant-style return, governance handoff, company license choice and foundation fork

查看完整证据关系

片尾

21:35

你刚刚听到的是《原代码》第九期,《Redis:创建者怎样成为参与者》。

这是一档关于软件开发世界的技术考古与创作随笔。本期关于 Redis 创建者 Salvatore Sanfilippo,以及一个项目怎样从个人作品变成公共基础设施。

你可以访问《原代码》的官方网站。网站地址是,原代码三个字的全拼,点 X Y Z。在那里,你可以查看本期逐字稿、证据引用关系和证据快照,也可以收听往期节目。

感谢收听。