Common Clause on License => Dgraph is not Open Source

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.