First things first: Redis is not going proprietary, despite what some folks may want you to believe. Second, they are not doing anything evil. So, what are they doing and why?
Quick facts: Redis code base is open source. Their commercial product based on this code has always been closed source.
Now, let’s talk about what happened
Redis Labs has created modules that extend the functionality of Redis to cover most popular use-cases. Anyone can create these modules. Developers can choose the license they deem fit for their module. Redis Labs has created about a dozen such modules.
A few weeks ago, Redis Labs decided to add Commons Clause licensing to various modules that were developed by the company. These modules are still under Apache 2.0 licence plus Commons Clause.
Redis Labs believes that Commons Clause offers some ‘protection’ to Redis from predatory cloud providers who sell Redis without giving anything back. Under the clause, while the consultant is free to offer consultancy services around these modules, big cloud providers like AWS are prohibited from selling Redis Labs products.
Let’s go to the why part
Why they are doing it is as important as what they did. They don’t have an ulterior motive. They are not becoming evil. Per my discussion with Manish Gupta, CMO at Redis Labs, the company values open source as much as any other open source company does. It’s also aware of the fact that in the world of open source your reputation sometimes matters more than your code.
What they are trying to do is survive.
According to Redis Labs, cloud providers, specifically the 800-pound gorilla AWS, are leeching off their open source work, which is allowed by the BSD license, without giving anything back.
“What AWS did was take Redis Open Source to offer Elastic Cache and monetize from it to a very significant level without any contribution back to the community,” said Gupta.
Redis Labs claims:
Cloud providers contribute very little (if anything) to those open source projects. Instead, they use their monopolistic nature to derive hundreds of millions of dollars in revenue from them. Already, this behavior has damaged open source communities and put some of the companies that support them out of business.
To be honest, that’s a known problem with BSD license; it encourages such behavior. That’s why Linus Torvalds uses GNU GPLv2 for Linux, the world’s most successful open source project. Torvalds says that GNU GPLv2 ensures that if anyone uses his code and makes any changes, those changes have to come back to Torvalds. He is so critical of BSD that he says if you don’t care about the code, then you would release it under BSD.
BSD license is a double-edged sword. It gives the power to the owner of the software to make certain pieces proprietary, but it also gives the same power to everyone else. And AWS is using that power.
Can Redis Labs solve this problem by using GNU GPLv2 license? Would that force AWS to contribute back, at least in terms of code? I don’t know.
They did try AGPL.
“When Redis Labs started writing modules, they used AGPL licenses thinking that it might eliminate abuse by predatory cloud providers. Redis Labs had two observations: One was that AGPL was not offering strong enough protection from the cloud service providers like AWS,” said Gupta.
The second observation was that open source developers were not comfortable with AGPL as it was not accepted in their corporate environment. “Many large enterprises don’t want their developers to use the open source that’s under AGPL,” said Gupta.
Redis Labs had to find a middle ground. A path that was open source friendly. A path that would offer some protection.
Adding Commons Clause to the modules seems to be the only way they thought might work. Gupta said that the decision was made after long discussions with the community and developers.
Will it work?
Even Gupta is not confident that it would work. No one knows. There are no known cases where it seemed to have worked. Few companies have tried it, but there is no evidence it worked.
At the same time, there are not that many known cases where big players abused open source to this extent while keeping their own code proprietary. Apple is one of the biggest consumers of open source. But they don’t leech; they contribute heavily.
So Redis Labs is in a very tight position. There are not enough successful models to follow.
Conundrum of open source
This has been the conundrum of open source from the early days. Open source brings the benefit of contributions from people you don’t pay. It cuts down the cost of R&D and software development. But it also has a built-in risk of creating an opportunity for someone to take your work without giving back.
Even Red Hat resorted to changing its patch policy to discourage Oracle from blatantly copying its code. I recall an interview with Red Hat CEO Jim Whitehurst where he said if Red Hat were a proprietary company, they would be playing with $20 billion in revenue instead of $4 billion. But they chose to be open source. They chose to do everything the open source way. They found a clever work-around without compromising their spirit of open source.
Can Redis Labs do something similar?
Luis Villa, co-founder and general counsel at Tidelift said, “The Commons Clause is symptomatic of a larger issue with open source that needs more attention. While it might be easy to demonize Redis Labs for attempting this license change, perhaps we should look deeper, and ask what would cause a rational company with strong open source credentials to consider a move like this?”
And that’s exactly my point. The real problem is a fundamental flaw in building a business model around open source. The major problem facing Redis Labs is “… how do we ensure those who write and maintain the code that our businesses rely on get properly compensated for their work. We think all organizations that care about the future of open source should be working together to solve this problem, and when we do, things like the Commons Clause will no longer be necessary,” said Villa.
Was there another way for Redis Labs? I don’t know.
The bottom line is, open source remains a development model; it’s not a business model. Building a successful business model around open source is a challenge. It’s a massive challenge. Sometimes holding back some of your cards seems to be the only business model around open source.
I have been monitoring online discussion, and I see knee-jerk and politically motivated discussions. None of the advocates are coming out with any viable solutions.
Attacking Redis Labs and questioning their motive is counterproductive. I have talked to many startups who are building new businesses, and some are getting worried about their work being taken away. This fear may discourage smaller players from open sourcing their work. In fact, today most start-ups either have a pure proprietary model or a lot of secret sauce. Neither of the two cases is healthy for open source adoption.
This situation can be avoided. In an ideal world, AWS should not only contribute back to Redis Labs but also work on a business model for a monetary contribution to such projects. If big players like AWS become good citizens, Redis Labs would not have to take such steps.
At the same time, in an ideal world the open source community would sympathize with Redis Labs, and instead of attacking them, it should be shaming the offender.
But we don’t live in a perfect world.
The bottom line is, open Source remains a development model, it’s not a business model. Sometimes holding back some of your cards is the only business model around open source.
Redis Labs is trying to do the same by keeping most of its cards open.
I see no harm.
If you were Redis Labs, what would you do?