skip to content

What is RethinkDB's maintenance status, and how would you weigh adopting it today?

level: principalimportance: nice to knowfreq 30%

answer

  1. Company folded, code did not
  2. Relicensed and donated after the shutdown
  3. Small volunteer maintainer pool now
  4. Quality and sustainability are separate axes
  5. Leaving costs more than joining

basics

~20 s

RethinkDB the company shut down in 2016; the code was relicensed under Apache 2.0 and moved to the Linux Foundation, maintained since by a small community with infrequent releases. Adopting it now is mainly a sustainability bet, not a technical one.

solid answer

~50 s

RethinkDB Inc. announced it was shutting down in 2016. In 2017 the source was relicensed under the Apache 2.0 license and placed with the Linux Foundation, and since then it has been maintained by a small volunteer community with sparse releases. The database itself still works and changefeeds remain genuinely good, so the risk is not that the technology is bad — it is the supply chain around it: how quickly a security fix lands, how current the drivers are for your language and runtime, whether managed hosting exists, and whether you can hire or retain anyone who knows it. For a new production system I would treat that as disqualifying unless real-time push is the core product requirement and no mainstream option fits. The honest alternative is a widely-maintained database's own change-stream facility, or an explicit event log alongside the database, accepting more moving parts in exchange for maintained ones.

go deeper

for a junior

Know the outline: the company behind RethinkDB shut down, the code became Apache-licensed and community-maintained, and it is not a default choice for new systems.

for a middle

Explain the concrete consequences of a thin maintainer pool — security-fix latency, driver currency for your language, sparse hosting and tooling — rather than a vague sense that it is abandoned.

for a senior

Show how you would contain the risk in a system already running it: isolation behind an interface, verified restores, pinned drivers, and a named trigger that would start a migration.

for a principal

Own the framing that quality and sustainability are independent axes, that exit cost is highest for embedded-DSL data layers, and that the decision belongs to whoever will staff the consequences for years.

## What actually happened RethinkDB was built by a venture-funded company that could not turn a widely-admired open-source database into a business. In 2016 the company announced it was shutting down. In 2017 the source code was relicensed under the Apache 2.0 license — it had previously been under the AGPL — and stewardship moved to the Linux Foundation, with the Cloud Native Computing Foundation involved in funding that relicensing. Since then the project has been community-maintained: the repository is alive, issues get answered, releases happen, but at a cadence set by volunteers rather than a funded team. This history is why interviewers raise RethinkDB at all outside of a shop that runs it. It is a compact case study in the difference between *technical quality* and *project sustainability*, and a candidate's answer reveals how they evaluate dependencies. ## The technical merits are not in dispute Changefeeds were, and largely still are, the cleanest expression of database-level push: subscribe to a query, receive `{old_val, new_val}` for every subsequent change, including over ordered top-N windows. ReQL is a pleasant embedded query language. The clustering story includes sharding, replication and automatic failover. None of that stopped working when the company did. So the adoption question is not "is it good?" but "what is the cost of depending on it?". ## The dimensions that actually decide it **Security response.** A database is exposed infrastructure. The question is not whether bugs exist but how fast a fix ships and how confident you are that someone is looking. With a small maintainer pool, that answer is "eventually, if someone volunteers" — which for many organizations is where the conversation ends. **Driver and runtime currency.** You do not consume a database directly; you consume its client library for your language, on your runtime version, in your framework. Drivers rot faster than servers. Check whether the driver you need is maintained, whether it supports current language versions, and what your plan is if it stops building. **Operational ecosystem.** Managed hosting, backup tooling, monitoring integrations, container images, and battle-tested runbooks are all thinner than for mainstream stores. Every gap becomes work your team owns forever. **People.** Hiring for it is hard, onboarding takes longer, and the engineer who championed it becomes a single point of failure. That is an organizational risk, not a technical one, and it is usually the decisive one. **Exit cost.** Because ReQL is an embedded DSL rather than a portable query language, migrating away is a rewrite of the data-access layer, not a connection-string change. That asymmetry — cheap to adopt, expensive to leave — is exactly the shape of dependency to be cautious about. ## How to answer the adoption question A credible answer is conditional rather than dogmatic: - If an existing system already runs RethinkDB and is stable, ripping it out is rarely the highest-value work. Contain the risk instead: isolate data access behind an interface, keep a tested restore path, pin and vendor the driver, and monitor upstream for security advisories. - If it is a new system, the default is no. The burden of proof is on the person proposing it, and it must clear the alternatives on a requirement that genuinely cannot be met otherwise. - If real-time push is the product, evaluate mainstream options first: a maintained database's own change-stream or replication-log facility, or an explicit event log beside the database with application-level fan-out. These need more parts than a changefeed, but every part is maintained and staffed. ## The transferable lesson The reason to know this story is not RethinkDB trivia. It is that dependency selection has a sustainability axis independent of quality, and that the axis matters most for components that are hard to replace — databases above all. The right instinct is to ask, of any infrastructure dependency: who is paid to fix this, how would I find out it broke, and what does leaving cost?

  • A team already runs RethinkDB in production and it is stable. Do you migrate?
    Usually not on principle alone. Contain the risk instead: isolate data access behind an interface so a future move is bounded, verify backups restore, pin and vendor the driver, and watch upstream for advisories. Migrate when a concrete trigger appears — an unfixed vulnerability, a dead driver, or a scaling wall — not on ideology.
  • Why is exiting RethinkDB more expensive than exiting a SQL database?
    ReQL is an embedded DSL, not a portable language, so query logic lives as driver method chains throughout the application rather than as statements a different engine could parse. Migration means rewriting the data-access layer, not repointing a connection. That asymmetry is worth pricing in before adoption, not after.

saying these in an interview costs you the question

  • Claiming the project was deleted or is unavailable
  • Saying it was acquired and closed-sourced
  • Judging only technical merit, ignoring maintenance
  • Recommending immediate rip-out of a stable system
  • Assuming any open-source license guarantees maintenance

context