This is an answer to a Quora question: Are open-source databases dead?.
Yes, they are dying (this is no joke answer).
Sure, many open-source databases are being used and maintained every day. And, of course, any open-source software will exist and can be forked by anybody. So on the technical level, they cannot die.
However, we have seen several big open-source databases die in the past years. MongoDB, Redis, CockroachDB, TimescaleDB, and–most recently–Elasticsearch. All of those databases ceased to be open-source.
Let me show it on the example of MongoDB and Elasticsearch. Both of the companies behind the databases decided to switch to Server Side Public License (SSPL) which is not considered to be an open-source license. Since this license allows free (as in beer) use for some use cases we will likely be seeing them for quite some time. It’s nevertheless a death of an open-source project.
The reason cited by both projects is… Amazon. More specifically AWS. You see, Mongo and ES were developed by companies and these companies not only lead the project development, but they also hold the trademarks etc. They both also make money on providing some services for their DB, be it consulting, paid extensions, or DBaaS (database-as-a-service) hosting. Historically, publishing open-source software and making money on the services worked great and for many companies, it was a viable business strategy (yes, open source is a business strategy).
In the world of AWS (and other cloud providers) it creates an asymmetrical relationship: AWS can provide and charge for their DBaaS based on an open-source database while paying nothing back to Mongo or Elastic (Amazon has the manpower to support it themselves even on large scale). Which is completely OK under the open-source licenses.
Both of those companies realised that their business strategy was wrong and open-sourcing their DB was a mistake (from the business point of view). So they changed the license to a non-free (as in speech) and non-open one. This created some controversy as relicensing open-source is generally not possible, they took advantage of a clause in CLA that every contributor had to sign.
(Side note, this lowered already low trust in CLAs. A problem for some mostly big companies, that feel they need some extra intellectual property protection and still want to have an open-source program.)
If I were starting a business in providing a database engine now, I’d really think about open-sourcing it based on the experience of Mongo and Elastic. And we see exactly that already, with DBs like Fauna or Firebase not being open-sourced at all.
So I think that open-source databases are dying because we might see less and less of them published in the future.
- And just like that, Amazon Web Services forked Elasticsearch, Kibana. Was that part of the plan, Elastic? on The Register
- Elasticsearch does not belong to Elastic on Drew DeVault’s blog
- Doubling down on open, Part II on Elastic blog
- Why We’re Relicensing CockroachDB on Cockroachlabs blog
- How we are building a self-sustaining open-source business in the cloud era (version 2) on Timescale blog
I firmly believe all creative people hate when others tell them what to do. When instead of problems to solve they are handled solutions to implement or, even worse, isolated tasks to just complete. Yet, the world is full of micromanagers. Over my career, I’ve heard countless complaints about how managers do not give their reports enough context, enough trust, enough freedom. That they decide all on their own. Why is that?
Since the very first moment I learned about TypeScript, I knew there’s always goona be this one thing I’ll hate on: Enums. So un-elegant, so old-school, and so why-do-you-polute-my-runtime. Well, I was wrong. I use Enums now. At least some of them. Let me show you.