Mathias Rosenthal - Fotolia

Redis Labs swaps out open source to protect against public clouds

While Redis remain open source, higher value modules are now covered by a commercial agreement which limits commercialisation of Redis-based products

Redis Labs has decoupled its database modules from open source to a new commercial licensing scheme that provides access to the source code.

Its decision comes after receiving feedback from the Redis community about recent changes made to the open source licensing used for its in-memory database products.

Redis Labs originally made the software licence change to prevent cloud providers from generating managed services, based on the freely available Redis database code. The Redis Source Available License Agreement replaces the Apache 2.0 modified with Common Clause licensing it previously used.

Redis core remains licensed under the open source BSD 3 licensing scheme. Redis Labs said it has built a dedicated team, led by Salvatore Sanfilippo, the creator of Redis, to manage Redis core in a completely independent manner. 

According to Redis Labs, the open source Redis core includes all the ingredients needed to run a distributed database system, including replication, auto-failover, data persistence and clustering.

While the core Redis database and tools remains covered by BSD 3 open source licensing, higher value components, known as Redis Modules, such as RediSearch, RedisGraph, RedisJson, RedisBloom and RedisML, are covered by a new commercial agreement.

The change comes just six months after Redis Labs introduced Apache 2.0 modified with Common Clause licensing.

Common clause confusion

The Apache 2.0 modified with Common Clause licensing scheme was originally introduced to protect Redis Labs’ database products from being used for public cloud fully managed services offered by the leading cloud providers.

Now Redis Labs has introduced an entirely new licensing scheme, the Redis Source Available License, which applies to any organisation building a database engine based on Redis.

In an interview with Computer Weekly discussing the change, the company’s CEO, Ofer Bengal, said: “We were the first company to come up with a semi-open source licence.”

He said that the core product remains licensed under BSD open source licensing, adding: “Through BSD, anyone can pick up Redis.”

However, Bengal said the major cloud providers were using Redis Labs’ in-memory database products to develop fully managed services, generating what he predicted was revenue in the “hundreds of millions of dollars”.

But the cloud providers did not contribute anything to the open source Redis Labs project, with Bengal adding: “They [the cloud providers] made more revenue than we were getting.”

To protect its revenue stream, Bengal said the company tried introducing Apache 2.0 with Common Clause to restrict cloud providers offering managed services based on its open source database products.

However, he admits that Apache 2.0 with Common Clause was challenging for the Redis community. “It said you are not allowed to a sell a product or service of which its value is derived substantially from the [Redis Labs] product.

“Some members in the Redis community who provide consulting services complained that Apache 2.0 with Common Clause licensing makes it hard for them to sell their [consulting] services.”

According to Bengal, the new licence makes the source code available. “Anyone can use the source code, modify it and use it in their application,” he said.

The only caveat is that the software derived from Redis Lab’s code cannot be used to develop database engines, caching engines, stream processing engines, search engines, indexing engines, machine learning or deep learning or artificial intelligence serving engines, and any product or service exposing the Redis application programming interface (API) or the Redis Modules API.

Read more about open source licensing

“We looked at mainstream use cases and we feel the definition is wide enough to cover most of them,” Bengal said. “We don’t mind if you use the Redis Module to build a graph database for a social application which is then commercialised, but you are not allowed to develop a graph database product based on our Redis Graph module.”

The introduction of the new licensing follows on from Amazon Web Service’s (AWS) introduction of DocumentDB, a database that is API-compatible with another open source database, MongoDB.

When asked of the risk that Redis could be undermined if a cloud provider offers an API-compatible alternative, Bengal said: “API compatibility cannot be avoided unless the API is closed source. In our case, there is less probability that AWS or someone else will do this because they have their own graph databases.

“I am not sure there is a big risk AWS will take the internal APIs of Redis modules and develop their own AWS modules,” he added.

Bengal argued that cloud providers cannot justify the time and effort required to develop a Redis compatible module. “While it would be very easy to take [source code] and offer a product in the cloud, I wonder if they will invest the effort to develop a completely new API-compatible module, such as our search and graph databases,” he said.

Looking at how cloud providers can support open source software database providers such as Redis, Bengal admitted that simply contributing manpower to the open source project is not really viable.

He argued that since database products are so complex, when it comes to open source databases, 99% of code contributions come from the company behind the product. “You have to devote yourself to the project,” he said.

Even if the public cloud providers did start offering a team of database developer specialists to support open source projects, it is far too late for Redis Labs. “Open source Redis started in 2009 and we are in our 10th year, so it is now too late for the cloud providers to start contributing to the project,” said Bengal.

Read more on Software licensing