Common Clause on License => Dgraph is not Open Source

Hi @mrjn, I understand your concern and decision. Thank you for taking the time to explain the thought process.

I do have one question though: if Google bans all software with Commons Clause, will that change Dgraph Labs’ decision? As an Ex-Googler, I don’t see how Commons Clause passes Google’s software license review process.

I am also concerned that savvy startups and open-source contributors will start moving away from Dgraph purely because of Commons Clause. This would be a shame because I think Dgraph has made some great decisions on the forefront (Go, GraphQL, Raft, gRPC) and has a lot of potential.

A few options to consider, for now or when Commons Clause starts to hinder the progress:

  • You could specifically restrict the selling of Dgraph or derivative software as a cloud datastore/graph-database service.
  • You could make the core parts of Dgraph truly open source (OSI-compliant) and make advanced features (enterprise security and auditing, performance tuning, etc.) covered by Commons Clause.
  • You could revert to open source and lead the community to build the best graph database and cloud service there is. If you achieve that, I bet the worst case scenario would be a $100M+ acquisition by one of those “giant cloud provider”.

Just my two cents.

Thanks,

Zak

1 Like

Yes, I understand the rationale, but if they have a blanket ban on the AGPL, then you could (as suggested above) dual license with AGPL and some other license that they would then have to choose.

As it is, you say you won’t go after small people, but how can I know this to be true forever. I don’t. Maybe you don’t care whether I do or not. But as it stands I can’t use this.

Let’s take a reasonably realistic hypothetical. I am a bioinformatician who works at a University, I build tooling to work up an analytical pipeline dealing with generic bioinformatics problems using graph DBs (this is for example this) and that approach becomes successful. The work is published and gains some use throughout the bioinformatics world. Now the University takes on consulting using the workflow. But the workflow is built on Dgraph and that would probably constitute a substantial contribution to the value of the consulting product. This is the hazard of using the tool. If we were able to use AGPL, then (as ethical contributing members of the scientific community we would be happy to contribute everything back to the community), but under the current system, that is not possible. Our legal and risk would not accept the situation.

Another more general case is a data-analytical consultancy that makes use of Dgraph for their analysis pipelines. Again, the sale of the consultancy work depends on the use of the Apache License grants and the consultancy services are substantially valued by the use of Dgraph.

1 Like

If Google does indeed ban Commons Clause, we might also reject it. But, I don’t see that happening. The reason Google bans AGPL is because they have a lot of proprietary code base, which they can’t afford to release because it happens to touch something AGPL. In fact, I’d argue that if Linux Kernel wasn’t GPL, they’d have banned GPL for the same reason (as Chris Dibona said, “there’s no interesting software in AGPL”, which I understand as, “there’s a very interesting software in GPL, so we’ll deal with that, but no more.” Just my personal line of thinking – which hasn’t been verified by anyone at Google).

Commons Clause does not give any of those pains to any company, big or small. They can use it all they want, for any internal, or commercial products.

That’s not very different from what Commons Clause is trying to achieve.

@kortschak: I think both of your questions hinge around consultancy. If in these scenarios, the consulting is being done on the products built on top of Dgraph, that should be alright, and won’t be restricted by Commons Clause. The “substantial” clause in the license is a standard legalese representing a software which is almost equal to the licensed software (added a couple of apis on top of the DB). It does not mean a software which won’t substantially work without the licensed software (a dynamic website won’t work without a database).

However, if the consultancy comes down to consulting on the Dgraph software itself, that’s when the clause kicks in.

So this is my first of three hypotheticals. If I install software Dgraph on a clients server, that would be subject to the restriction, as would if I bring a copy of Dgraph that I had been using in private projects and installed that for work on my employer’s hardware as part of my work, having recognised that it would be helpful there.

I doubt the following:

I’d argue that if Linux Kernel wasn’t GPL, they’d have banned GPL for the same reason (as Chris Dibona said, “there’s no interesting software in AGPL”, which I understand as, “there’s a very interesting software in GPL, so we’ll deal with that, but no more.” Just my personal line of thinking – which hasn’t been verified by anyone at Google).

The GPL does not touch their service. Just as you claim regarding the Commons Clause (which I would dispute in that case), Google (and any other company) can use GPL licensed software internally as much as they want provided it does not get included in software product that they distribute. The likelihood of this happening with the kernel is infinitesimal, even without care.

If they were ever actually worried about this they would have taken Apple’s route and used a BSD for their underlying OS.

There have been a lot of good points critiquing the adoption of Commons Clause. So as to not rehash them… +1

What does best reiteretion is that the CC in its application here is far more broad than you are purporting. Did you consult an attorney or licensing expert?

I am myself both an attorney and a developer. And not that I am rendering an opinion fo anyone else, but I can strongly state that I CANNOT adopt dgraph for any commercial project because of the CC.

It is not in our interest to go after individuals

If this is true, then your license should reflect that. Your statement by itself does not protect me. Your license does.

They can continue to build commercial applications on top of Dgraph

Except doing this violates the license. An application merely needs to derive “substantial” value. Any application that serves data from dgraph is deriving value from it. The question then is it substantial or not. This is such a slippery slope of a word that has no definition in your license. Maybe all you need to do is define that word. As written, however, it encompasses any usage that I would use for driving an application. Why? Because a data driven app needs… well… data. And presumably I am adopting dgraph because I see value in it over an alternative. The data layer is not incidental or minor. It is a critical component of a stack that drives many design decisions. How many apps can without blinking an eye switch their data layer? Usually this is a painful process by cause the application layer is tightly coupled with the design decisions of the DB. Accessing and serving data is a substantial part (if not THE biggest part) of most applications. After all, that is what a web app does. Stores data, manipulates data, serves data, and then persists data. Dgraph is involved in at least two of these four processes. That is not incidental or ancillary.

2 Likes

Note that Commons Clause is being adopted by not just us, but a bunch of companies working on OSS. It was put together by one of the top open source lawyers in the field. Here’s the site:

The page also explains the intended understanding of “substantially.”

I am aware of the usage of CC, and the site you linked to. However, I fail to see why the usage by others makes it okay in this context. I am not saying that it should never be used. I am saying it is being used improperly in this context and its application prohibits usage. Your concern is to allow for Google to use your software. Have you checked with Google that they are okay with CC for dgraph?

I asked if you had consulted an attorney precisely because I think the usage here is inappropriate. I am not trying to be difficult for you. Merely stating that I think you have misunderstood this clause and its application to your software.

As I stated before, I would not have such a problem if it were applied to the web UI only. Or, I would not have a problem if the license specifically prohibited me from selling dgraph hosting. Or, if it prohibited me from selling dgraph at all.

What I have a problem with is that the license within its four corners prohibits me from selling anything deriving substantial value from dgraph. That is vague and very broad. As it stands, I can not even sell a product that uses dgraph as its data layer.

Should I choose to use dgraph, the explanation of linking to the CC website is a problem because:

  1. My contract would be with you. I am bound by the terms of the license, not some other website which is not incorporated into the scope of the agreement.
  2. It relies on a legal interpretation of “substantial”, which was exactly my point. I am asking for a narrow definition so that I know what “substantially” means as it relates to dgraph.
  3. If you say it means something (as you have suggested here in this forum), then why would you not incorporate that into your license instead of hiding behind someone else’s definition?

Legally speaking, substantial can mean, a lot of things, including something that “performs essential functions”, or whose usage is “not incidental”. The point that I have been trying to make is that it would be incredibly easy for a judge to agree with an argument that the usage of a DB engine in a web application derives substantial value from that DB engine. At best, I think that I would have a 50/50 shot if I needed to argue that a dgraph-powered app does not derive substantial value from dgraph. That is not a risk I would be willing to take.

1 Like

We did of course, use an attorney. In fact, her name is mentioned at the top on the page I linked above.

I think your concerns lie with the usage of term “substantially”, instead of our motives in aiming to avoid companies selling Dgraph itself. With that in mind, I think the page does a pretty good job of explaining how the term “substantially” is being used. As a lawyer, if you can suggest better wordings that we can use to explain our motives, we’d be happy to consider them.

From https://commonsclause.com :

Commons Clause prohibits me from selling “substantially” the Commons Clause licensed software. What does “substantially” mean?

“Substiantially” is not a new concept. Qualifications like “substantially” are common in legal documents to indicate that minor differences are not important. In this sense, “substantially” means “for the most part,” or “essentially” (as the word is defined in the Oxford English Dictionary.) The Commons Clause restricts the sale of a product “whose value derives, entirely or substantially, from the functionality of the Software." Selling a product which adds only an insubstantial value to the software – such as changing the product name, changing some API or function names, or just making the Commons Clause licensed product available via SaaS – would be restricted.

1 Like

I brought this up on the GitHub thread as well, but this seems more active so I’ll reiterate here. It’s of course well within your rights to license your software as you see fit, but you haven’t written your marketing material in good faith. The website says:

Written entirely in Go, Dgraph is available under an Apache v2.0 based liberal license

Which seems to me like an attempt to ape the mindshare of the Apache license and mislead people into thinking your software is open source and “liberally licensed”, when it’s not. Something like this would be more appropriate:

Written entirely in Go, Dgraph is available under a source-available Apache v2.0 + Non-commercial license

And changing the header from “LIBERAL” to something like “SOURCE-AVAILABLE”.

If you’re not proud of your licensing choices then you shouldn’t have made them, but if it was the right thing to do you should own up to them.

1 Like

The link to the commons clause explanation page answered my concerns. As I understand it, if I build up a system that offers a service (which is sold) above and beyond what Dgraph offers, that service is in the clear. For instance, if I build a specialized application platform, where Dgraph is only the data store, that wouldn’t fall under the commons clause.

I also appreciate the founder explaining himself here in fair and amiable terms. That heartens my intentions to use Dgraph. Thanks. :+1:

Scott

1 Like

@mrjn

Redis forked because of Common Clause

I wish I shared your outlook that everything is clarified. :scream:

I’m not in a position where I can comment fully (need to get back to a computer), but Redis takes the approach that I am trying to advocate here.

Sure, I would love to see the CC rid of. It is toxic, vague, and not narrowly tailored to the purpose it purportedly is trying to protect.

Regardless, it can be used,in a smart way. Redis is licensed under BSD, and only uses the AP he and CC for specific modules. I have a much easier time swallowing it’s application to a module that does not have the same impact on my application where it may be more ancillary.

If Google does indeed ban Common Clause, we might also reject it.

I don’t know for how long it’s been this way, but Google does ban Common Clause.

Commons Clause not allowed

The Commons Clause prohibits any commercial use of the software. As with the above, everything that Google undertakes is a commercial endeavor, so no code released under any license that includes the Common Clause may be used at Google.

https://opensource.google.com/docs/thirdparty/licenses/#commons-clause-not-allowed

This clause is my primary concern at the moment when considering to use dgraph. I’m stopped from pursuing it because of this clause. If it were removed, I’d be interested again.

2 Likes

I hear you guys about the confusion over the term “substantially.” It is subjective and no amount of explaining can make it clear. And now with the outright ban by Google, I don’t see how the clause could achieve wide-spread adoption. So, I’ve put Dgraph back under Apache 2.0 license, making it open source again.

See full commit and the reasoning behind it:
https://github.com/dgraph-io/dgraph/commit/3d0b2cd84f04b263f6c5128e682a63be8dcb220d

13 Likes

Good decision, @mrjn. I knew Google would disallow Commons Clause eventually. I am glad this happened soon enough to avert any lasting damage to the project. Thanks for keeping your word and reverting to an open source license. I hope Dgraph Labs can commit to keeping it this way so the community can have confidence in contributing to the project going forward.

We look forward to continuing development on Dgraph and contributing to its success.

Cheers,
Zak

1 Like

Thank you @mjrn!

This is the right call for oh so many reasons, and I will do what I can to help you guys to succeed!

2 Likes

Great find @RobertP!

And thank you @mrjn. This is a great move to achieve your vision for Dgraph.

2 Likes

+1 Good decision! I hope it brings the project great success.

I just read the post and support the track you are on. A solid core of open source with ancillary packages/services/features. :beers:

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.