The Changelog #266: The Future of RethinkDB with Mike Glukhovsky


Yeah, absolutely. So it’s really interesting to look at open source development – a comparison that I always really appreciate is the bazaar in the cathedral, which people are probably familiar with, but I’ll repeat it for those who aren’t. Open source is the bazaar - it’s messy, it’s loud, it’s complicated, there’s lots of things happening, it’s hard to keep track of what’s going on. In contrast, the cathedral is closed source; it’s very polished software development that comes out with very precise, very clear products that are shipped, and you don’t have a lot of interaction between people who are using it. It’s very prescribed.

What’s interesting about when you build open source as a company is that you can kind of strike this happy medium between the two, where essentially you have the resources of what you would call the cathedral model, and yet you’re able to still work with the bazaar and to open and invite people to be able to contribute, collaborate and work on the project with you. So RethinkDB has like hundreds of thousands of users around the world who use the project, and throughout the company’s history, people regularly were contributing major features to it. We would have pull requests that would come in, we had an open development model on GitHub; we did everything out in the open. There was no private trackers, no private communications that were significant. Everything we did was in the public, in the open, on GitHub.

So the community would come in and work with us and be able to build features together, close a product feedback loop, be able to help us ship things more quickly because we understood what their needs were. And when the company shut down, the intellectual property was in a state where it was held by a third-party, because when companies shut down, typically investors will hold on to certain assets of the company. So we found ourselves in this position where the open source license was AGPL, so people could continue using the project and feel comfortable using it. But we were unable to change the license or make any significant changes, because the intellectual property was in the hands of a third-party.

The first thing that happened was that people said “We’re not gonna let this die. It really doesn’t matter what you guys do, because it’s open source, so we’re gonna keep going with this”, but if we’re able to retain control of the assets, we can make some changes we wanna make. For example, when the Linux Foundation and the CNCF ultimately ended up acquiring the assets of RethinkDB, they changed the license to the Apache Software License, which some people consider to be more permissive, because it places less restrictions on how you use the software. That was one change that they really desired, and I understand why.

[00:12:02.26] They also acquired a lot of the closed source assets of the company. We had a version of the database called RethinkDB Enterprise, which had only a small handful of features, things that were useful to very large organizations, like audit logging, audit trails, things like that… And we’re working on sharing those more broadly with the community and actually getting into the open source version.

So essentially, people stepped up and said “We’re not gonna let this go away”, so I agreed with them. I didn’t want RethinkDB to stay in limbo, so I worked very closely with the open source leadership team, which was comprised of former RethinkDB team members - including myself - and a number of folks from the open source community who really had made this a part of their lives. They had worked with us for years. We had very close connections and relationships in that community, and they were our friends; we all share the same passion, to be able to keep the project going.

After a few months, we decided to be as public as we could about the process, and we held regular meetings. We have a Slack channel where we had over 1,500 people who all joined to try to figure out how to move forward with the project. After a few months we were approached by Dan Kohn and Brian Cantrill, who suggested that they would be interested in acquiring the IP and assets of the software project. So we worked with them to close the deal, to be able to move over the control of the assets and be able to relicense the project.

Yesterday actually, we just shipped the first release for the open source project under the hands of the community, which is 2.3.6, which sums up a series of stability fixes, bug fixes and improvements, and it’s also the first official release that has been fully under the Apache Software License. And we’re steadily working on releasing more of the things that we’ve built, including some of the closed source features that we have built in the past eight years, and other things… We had a full-time resident artist-illustrator who is creating art around the open source project. This is something that I really cared about, because to me software is a vehicle for ideas, but art is also a vehicle for ideas; it helps you express the way you reason about the world, the way you think about the world. So in building a community project, we had a lot of art that we created around it, which really helps people understand the ideas that we’re communicating.

So all that art, and we’re working on also open-sourcing a lot of the projects that we had internally for build testing, performance testing, load testing. They’re all getting steadily open-sourced. So the challenge and the opportunity for the project is to figure out how to move to this community-based model.