top | item 20097863

(no title)

bdarnell | 6 years ago

(Cockroach Labs founder)

The details are in the "additional usage grant" clause: https://github.com/cockroachdb/cockroach/blob/8acfe8ffd0028c...

We decided to draw the line at whether the end user has direct control over table schemas. If users can specify the schema to be used, it's a database service and needs a license. If you're fitting everything into a generic schema (even if the user can specify things that look like new columns in the UI), it's an application and doesn't need a special license.

discuss

order

geofft|6 years ago

I'm surprised everyone is saying it's clear, because I think it's sort of vague, so maybe someone can talk me out of it. :)

If I build a service that lets customers define object types by dragging form widgets, and I turn that into a CRUD app backed by CockroachDB, and they just get to pick a CSS template and occasionally get Excel dumps, are they controlling the schema? They don't write any SQL, they certainly don't ever type or see the words CREATE TABLE, but internally I create a table for each of their types with a schema generated from their input, does that count?

Someone else asked about hiring a sysadmin consulting service. If I go to them and say, "Hey, my consulting firm will install and maintain your production servers, pay us $N/hour for routine changes and $kN/hour to page us," but they have their own developers who write code and can cobble together dev infra if needed, can they choose to use CockroachDB? In my reading of the license, they have the right to make it available to us as their contractor, but we don't have the right to download and install it and make it available to them for them (or us!) to run their CREATE TABLE statements on.

(I appreciate that edge cases are hard, and that while "just leave it open source" provides easy answers to these questions, it obviously brings other difficulties that you care about avoiding!)

geofft|6 years ago

Here's another one: if I run some website that's backed by Cockroach and has its own source code available publicly for pull requests (think Reddit until a few years ago, etc.), and one of my customer sends me a pull request that changes a schema in order to implement a feature they care about, does that count?

bdarnell|6 years ago

I'd like to thank our friends at TimescaleDB for the idea to use schema control as the dividing line (they're doing the same thing in their license)

mfreed|6 years ago

Thanks, @bdarnell!

We at TimescaleDB spent a lot of time thinking about how to best express this dividing line in a manner concretely understandable by engineers. Glad to see others starting to take a similar approach.

easel|6 years ago

As a startup founder and CTO who has had to deal with getting (or not getting) such licenses through legal, I really appreciate the clarity of definition here. Typically the language tends to be vague around "derivative works as a service" which conservative lawyers treat as a risk.

Well done.

amenod|6 years ago

Genius! Very clear line!

I wish you all the luck on this endeavour, I really believe the time has come to move a bit away from strict open-source.

rolleiflex|6 years ago

This is well thought-out. Thanks for the clear line.

phonon|6 years ago

That's an excellent approach.