Recently Redis Labs announced Commons Clause License that caused quite a bit of uproar among the open source communities. One reason for the uproar was a marketing spin implying it is an open source license. Even though the license applies only for their proprietary add-ons than the core Redis itself, the pushback is real. But, in their quest to a pushback against Commons Clause, there is little discussion on the reason behind this move by Redis Labs. Even though I do not agree with Redis Labs’ move, I have been vocal about the underlying cause. I call this Robin Hoodization of OSS and I will use a question-and-answer format to address the issues surrounding this.
What is your take on Commons Clause License?
It is a self-serving license, and it is not open source. I recommend you to read Steve O’ Grady’s excellent take on the topic. I agree with him mostly except his take on the value of the code (which I will explain later in this post). It is a self-serving move by Redis Labs to fend off AWS.
What do you mean by Robin Hoodization of OSS?
I am borrowing the term Robin Hood from the English folklore where he strips money from the rich and gives it to poor. I am using the term loosely and I am not making an exact mapping with the story which itself has several forms. I am using the term to imply that value is taken away (albeit legally) from one group and delivered to another group who gain from the derived value. By Robin Hoodization of OSS, I mean that hyperscale cloud providers (specifically AWS and more about it later) take the value from OSS but their contribution back to OSS is not commensurate with the value they derive from OSS. This is not just restricted to hyperscale cloud providers. Every technology company, including pure play open source companies, take more value from OSS than their contribution back to the project. So, it is actually about value derivation per unit of contribution.
Of the three major hyperscale cloud providers, I am more critical of AWS because they have derived maximum value from OSS but contributed little compared to the value they derived. Google with Kubernetes, Tensorflow and other OSS contributions and Microsoft with .NET, Kubernetes and others have given back much more than AWS. Prove me wrong on this with real data but I have dug through AWS contribution in Github and they have either contributed OSS tools that will onboard people to their cloud service or Linux kernel patches useful for them. The only exception is the Gluon AI framework they announced with Microsoft.
However, if you look at how much value AWS is deriving from open source, it is several orders of magnitude more than their contribution (code or monetary support as with CNCF membership). Imagine a scenario (circa 2006-07) when AWS was getting started. Do you think they could have convinced Microsoft across the lake to offer flexible licenses for OS and Virtualization so they can offer cloud services? The OSS license is the reason we saw innovation happening in how we consumed compute resources. OSS gave the world cloud computing. Even recently, they are the biggest financial benefactor from Kubernetes (at least based on the public information we can derive) but their contribution back to the project is minimal. They not only lag other hyperscale cloud providers but many of the startups in the Kubernetes community too.
But, hey, developers are benefitting from AWS services and that’s what matters
The usual refrain from AWS advocates is that developers are benefitting from AWS’ use of OSS. Absolutely, that is the truth. AWS’ success lies in operationalizing software into an easily consumable service. They do a good job of it and that is why they are a (financially) successful cloud provider. It still doesn’t take away the fact they benefit from OSS without contributing back. They make money from operationalizing the software and it is theirs. They need to contribute code back to the OSS project and it is their responsibility.
Software code does not matter
I disagree that code has no value in today’s world. Yes, services is the way we will consume software but code is the underlying foundation of any service. The innovation happens in the underlying code along with the efficiency in operationalizing it. You cannot discount the value of the underlying code and attribute innovation to higher efficiencies. If your innovation focus is only on the business model and supply chain innovation, you may discount the value of code but most of the real innovation happens (and will happen) through code and hence both the code and the OSS license matters for innovation (Think of the difference between Amazon’s idea of innovation and Google’s).
That is why Commons Clause
No, I disagree. They do not need Commons Clause to stop Robin Hoodization of OSS. One can stop such abuse with a right license from existing open source licenses. Commons Clause is about getting a slice of profits from other vendors who use the software governed by the license. It is not at all in the spirit of open source. It is about sharing the wealth and not stopping abuse. If AWS or any other vendor add value to an open source software, they have every right to benefit entirely from the value creation. The demand should be about contribution for the value (complying to the spirit of OSS) AWS or any other vendor realize from OSS than sharing the wealth from their business.
If I put it bluntly in political terms, Commons Clause is about socialism while some hyperscale providers’ approach borders around predatory capitalism. Yes, this comparison is not an accurate mapping but I am using it to explain the gulf between the problem (lack of contribution by some hyperscale providers) and the proposed solution (Commons Clause)
I am confused now. You say no to sharing wealth but also demand AWS to contribute. How else can they contribute?
Good question. When I talk about AWS contributing back in commensurate with the value they derive from OSS, I am only talking about contribution in the spirit of OSS. I don’t want AWS to contribute the money they get by providing a service with the open source software. I, rather, want them to contribute back code (that is the OSS spirit) to the community. Code contribution is the only currency that fits well with the OSS spirit. Monetary contribution is secondary and it may even go against the OSS spirit or OSS philosophy. The only way to fix the problem with hyperscale provides abusing OSS is to put enough community and market pressure (instead of putting top AWS folks on the conference stage because they paid their membership dues, put the AWS engineer who contributes a lot to OSS on the stage). Talk to journalists and customers to make them understand the OSS spirit and how it leads to continuous innovation and how it prevents monopoly from developing in the market. The only fix to AWS problem is getting AWS to contribute more code to the projects they consume. Code contribution is the only currency that matters. Period.