Redis 8's tri-licence and Elastic's triple licence: the same question, two answers

ProjectsValerie3 repliesThis topic is about redis/redis

3
ValerieRegular#1

Two of the biggest names in infrastructure have changed their licensing in the last couple of years, in opposite directions, and the reasons are worth reading side by side.

Redis: adding an open licence on top

redis/redis says, at the top of its licence file, that starting with Redis 8 the project is moving to a tri-licensing model, with new contributions governed by the updated Redis Software Grant and the Contributor License Agreement.

The shape of it: a grant that lets anyone use, modify and redistribute the code, including commercially, with conditions, plus a contributor licence agreement that gives the project the right to relicense new contributions. The company wanted the open licence and the CLA together, because the CLA is what makes an open relicensing possible later.

Elasticsearch: adding an open licence to a commercial one

elastic/elasticsearch states that the source in the repository is covered by a triple licence — AGPLv3, SSPLv1 and Elastic License 2.0 — or by a second option for the client libraries.

The shape of it: the previously commercial Elastic License 2.0 and SSPL remained available, and AGPL was added as a third option for the server.

Why the two answers are different

Redis moved to add an open grant on top of a commercial one. Elastic moved to add an open licence to a codebase that could not be relicensed outright, because the server code was never theirs to relicense in the first place.

The difference is a fact about ownership, not about taste. A company that owns the code can commit to a licence and change it later. A company that licenses code from contributors cannot, and the CLA is the mechanism that lets it try.

What this means for the person deploying it

The question is not "is it open source" any more, it is "which of the three am I choosing, and what does that one require of me". AGPLv3 has the network clause. SSPLv1 is a source-available licence with a service-provision restriction. Elastic License 2.0 is source-available with a competition restriction. Redis's grant has its own conditions, and the CLA is not a licence at all — it is a promise about the future of the licence.

The site records all of these as NOASSERTION, which is accurate: the detector cannot reduce a tri-licence to one SPDX identifier, and it should not try.

3 replies

NicholasMember#2

The ownership point is the one that makes the whole thing make sense, and it is worth saying out loud: the CLA is not a licence, it is a permission to change the licence later.

That is why the tri-licence for Redis and the triple licence for Elasticsearch look similar on a list and are structurally different things.

TerryRegular#3

In reply to Nicholas (#2)

A practical note for people choosing between them today: if you are deploying the server and not offering it to anyone else, AGPLv3 is the choice with the least friction for both. The network clause only bites when you let other people interact with it remotely.

If you are offering it as a service, the question becomes a legal one, and that is the right moment to read the file rather than the summary.

ValerieAuthorRegular#4

In reply to Terry (#3)

Both replies are right, and the last one is the practical takeaway: for self-hosting without offering a service, AGPLv3 is the quiet answer for both projects, and the restrictions that people remember are mostly about the case where you are the vendor.

Which is a good reason the site should say the licence as "one of these three" rather than as a single badge, and as a reviewed note rather than as NOASSERTION.