The Cloud Native Computing Foundation today announced it has purchased the source code to RethinkDB, relicensed the code under Apache, and contributed it to The Linux Foundation.
RethinkDB is an open source, NoSQL, distributed document-oriented database that was previously licensed under the GNU Affero General Public License, Version 3 (AGPLv3).
The software is already in production use today by hundreds of technology startups, consulting firms, and Fortune 500 companies, including NASA, GM, Jive, Platzi, the U.S. Department of Defense, Distractify, and Matters Media. But the AGPLv3 license was limiting the willingness of some companies to use and contribute to the software.
Its new Apache license enables anyone to use the software for any purpose without complicated requirements.
To learn more about the future of the RethinkDB project, we spoke with Mike Glukhovsky, who helps run developer relations at Stripe and cofounded RethinkDB in 2009. Here, Mike tells us more about RethinkDB and discusses the community’s goals going forward. See the CNCF blog for more information.
Linux.com: Now that you’ve found a home with The Linux Foundation, what does the RethinkDB community plan to focus on?
The RethinkDB community’s first goal is to ship RethinkDB 2.4, which represents a shift from a federated development process to a distributed, community-based approach. The release will bring new features to seven years of development effort and a robust database used by 200k+ developers today.
Linux.com: RethinkDB is praised for its ease-of-use, rich data model and ability to support extremely flexible querying capabilities. Please elaborate on why it is easy to use and how it supports “extremely flexible querying capabilities.”
RethinkDB dramatically reduces friction while rapidly prototyping and building applications. You can get started with a powerful built-in web UI and data explorer that allows you to start modeling and exploring your data without writing any application code.
RethinkDB’s query language, ReQL, is a powerful and expressive functional query language that embeds natively in your programming language of choice. ReQL includes powerful features not usually seen in document stores, like distributed joins, Hadoop-style map-reduce, built-in HTTP support, and realtime updates on distributed queries.
We designed RethinkDB to scale linearly out of the box: you can spin up a cluster with multiple replicas and shards across multi-datacenter environments within seconds. If database nodes go down, RethinkDB will automatically fail over and maintain operations in production environments.
Linux.com: Please be more specific about why RethinkDB is appealing now, given that as a company RethinkDB was unsuccessful in creating a sustainable business despite heavy investment and the business shutting down. What brought it back to life? And when (what year) did it catch its second wind?
Ultimately, RethinkDB succeeded in creating a broad community that embraced the open-source project, but that didn’t translate into a scalable business. Companies building open-source developer tools face a unique set of challenges; doubly so when building databases.
The company behind RethinkDB shut down in 2016. A number of dedicated core team and community members have been working diligently to establish the technical and community leadership we need to keep the project going forward. Our new home with the Linux Foundation offers the support and infrastructure we need to build a long-term community effort.
Linux.com: What role is the cloud playing in driving popularity of RethinkDB?
Most modern, cloud-based infrastructures rely on clusters of nodes running application servers, microservices, databases, caches, and queues. While these systems offer flexibility and power via programmable environments, they come with the extra burden of operating these clusters. Small and medium-sized teams lack the expertise to manage the added operational burden, and large teams face challenges when deploying across multiple data centers, ensuring availability at scale, and handling complex failure scenarios.
This environment has encouraged RethinkDB’s adoption because it balances the needs of developers and operations teams equally. Developers are rapidly adopting RethinkDB because of its powerful query language, clear semantics, friendly web interface and excellent documentation. Operations teams pick RethinkDB because it linearly scales across nodes with a minimum of effort, handles failover quickly and reliably, and provides complete control over cluster administration.
Looking forward, RethinkDB’s realtime streams on queries allow modern architectures to manage the complexity of data that is constantly being updated across services and to provide solutions for IoT, realtime marketplaces, collaborative web and mobile apps, and streaming analytics. The cloud has transformed how we build software services, and it has also amplified the volume of data and changed how we interact with it. RethinkDB is designed to help solve those problems.
Linux.com: While not a part of CNCF today, would you like to see the project join CNCF in the future?
We’ve worked with members of the CNCF throughout RethinkDB’s history, and have long respected the work they do with projects like Kubernetes, Fluentd, and Prometheus. The CNCF is helping advise us on how to establish RethinkDB as an independent open-source project, and we plan to engage an open conversation with our community on where the project should live long-term. This might very well be the CNCF, but our community deserves to discuss it first.
Linux.com: What is the best way to volunteer and get involved in RethinkDB’s open source future?
We’ve been working with a community of more than 900 users and contributors in our public Slack group (#open-rethinkdb) to plan and secure a long-term open-source future for RethinkDB. Volunteers can learn how to contribute to the open-source project here: https://rethinkdb.com/contribu
We also always accept a good pull request. 🙂
The RethinkDB software is available to download at https://rethinkdb.com/. Development occurs at https://github.com/rethinkdb/rethinkdb and work has been underway on the 2.4 release, which will be available shortly. Follow the RethinkDB community discussion at http://slack.rethinkdb.com/.