The liberation of RethinkDB

I have long been a fan of RethinkDB, finding it to hit a sweet spot: developer friendliness (I <3 ReQL!) with Jepsen-grade robustness. This is the same ethos that we aspire to at Joyent, and that RethinkDB was born proprietary but later made open source made it feel like even more of a kindred spirit: I have leapt the chasm twice (first at Sun with what became illumos and then later at Joyent, where we open sourced our entire stack), so I felt I personally understood some of the arduous path that RethinkDB had walked. And several years into using RethinkDB in production, my affection hasn’t waned: upgrades are the true test of one’s relationship with a body of software, and I found that mine with RethinkDB has been only strengthened with time.

There was just one small hiccup with RethinkDB, though it felt forgivable at the time: RethinkDB is open source, but licensed under the AGPL. Whatever your own feelings for the AGPL, it is indisputable that its vagueness coupled with its rarity and its total lack of judicial precedent makes risk-averse lawyers very nervous (especially in companies that have substantial intellectual property to protect) — to the point that it’s not uncommon for companies to ban the use of AGPL-licensed software entirely. This makes the AGPL anti-collaborative, and worse, it’s often the point: when companies license software under the AGPL that they also make available commercially (that is, under a license palatable to the enterprise), they are exhibiting the corporate open source anti-pattern of dual-licensing for profit. (Viz.: Oracle’s infamous relicensing of BerkeleyDB as AGPL.)

The AGPL issue went from academic concern to existential threat with the unfortunate demise of RethinkDB, Inc.: the community was not only left without a steward but deprived of the option of moving to a foundation because of the anathema that is the AGPL. Many in the community saw the problem that the AGPL had become, and some of the staunchest RethinkDB advocates were blunt in their assessment that RethinkDB must be relicensed. But as time went on and no relicensing seemed to be forthcoming, angst in the community became palpable. That said, it has been clear that the RethinkDB leadership is excited to continue; only licensing seemed to stand in the way of a RethinkDB renaissance.

As a member of the CNCF Technical Oversight Committee, I hoped we could help: not only is RethinkDB entirely consistent with our mission, it seemed like a perfect opportunity to put our resources to work for the open source communities we serve. Dan Kohn, the Executive Director of the CNCF, saw this too, and through dogged persistence, he managed to land a conversation with the asset holders of RethinkDB. He and I spoke before his call, and while neither one of us was particularly optimistic, we also agreed that if an opportunity presented itself for the CNCF (and its parent, the Linux Foundation) to buy the assets outright, we could do a tremendous service to a deserving and beleaguered community. Fortunately, our pessimism wasn’t warranted: a deal was worked out quickly (!), and today, I am pleased to announce that the CNCF has purchased the intellectual property (code, docs, artwork, trademarks, domain names, etc.) of RethinkDB, Inc. And, of course and as one might imagine, we have also relicensed RethinkDB to be under the Apache Public License 2.0.

Thanks to the work of Dan and the LF team, the RethinkDB community has been liberated — and the community now controls its own fate. As in life, freedom for an open source community is not a sinecure; it is but the foundation upon which to build lasting success. But as we have learned in the illumos community, open source communities can be stunningly resilient when the software that binds them continues to be relevant to its users, and the future therefore seems bright for RethinkDB. Speaking for myself, I look forward to not only advocating for it to become a CNCF project but (more personally) to using and participating in RethinkDB for a long time to come!



Post written by Bryan Cantrill