Databases and their licenses

When the “NoSQL” movement started, one of the pillars of it was that the software was open source. It was supposed to be one of the differences to SQL databases that were to a high degree proprietary (PostgreSQL and MySQL being the two significant exceptions). At the same time, it was true that the databases either were extracted from big tech players (like Cassandra from Facebook) or were started by VC-backed companies (like MongoDB). It happened what had to happen: The second category struggled to make money, and the companies and their respective databases died (like Basho) or tried to make hosting their business (like MongoDB). A business model that simply doesn’t seem to work for databases, as people either buy it from their cloud providers, or run it themselves.

In this thread, I want to collect the database options we have now, how they are licensed, and if they force people to sign a CLA. From my perspective, switching your database is one of the most expensive and risky decisions, and I have rarely seen it go well. I therefore think it is a wise choice to go with a free software database to ensure you can stick with that decision eventually. I also think that requiring a CLA from contributors is a preparation step to go to a BSL/SSPL like license.

Business Source or Server Side Public License

  • ArangoDB
  • CockroachDB
  • Consul
  • Elasticsearch
  • InfluxDB
  • MongoDB
  • OpenTSDB
  • Redis

Requires a CLA

  • Aerospike
  • Crate
  • Dgraph
  • Hazelcast
  • Neo4j
  • RabbitMQ
  • RethinkDB
  • ScyllaDB
  • Volt Active Data
  • YugabyteDB

No CLA required

  • Cassandra (Apache)
  • Graphite Whisper (Apache)
  • Kafka (Apache)
  • MariaDB (GPL 2)
  • MySQL (GPL 2)
  • OpenSearch (Apache)
  • PostgreSQL (PostgreSQL License)
  • Prometheus (Apache)
  • Redict (LGPL 3)
  • Riak (Apache)
  • SQLite (Public Domain)
  • Valkey (BSD)
  • ZooKeeper (Apache)
  • etcd (Apache)

Please let me know if I missed a database, or if I put it into the wrong category <3

4 Likes

I believe that contributing to MySQL requires signing the Oracle CLA. This goes back to even before the Sun/Oracle acquisitions because MySQL was always dual-licensed (GPL and commercial). Here is an old article about when the Sun CCA (community contribution agreement, basically a CLA) was swapped in for MySQL’s.

MariaDB requires either a CLA or code changes to be submitted under the BSD-new license.

Thanks a lot, @jimw :+1: I was not aware of that. Unfortunately, I am no longer able to edit my post :thinking: But I think both MariaDB and MySQL need to be moved to the “requires a CLA” category: