Ayende @ Rahien

It's a girl

Comments on RavenDB licensing

There appears to be some confusion with regards to RavenDB licensing terms. In part, this is because some people believe that it is priced too highly.

There is currently a debate going on in the mailing list, which I suggest you’ll join. Yes, I am open sourcing the decision process for the pricing model :-)

That said, leaving the pricing aside, we still need to consider the licensing terms, and what they mean. RavenDB is dual licensed, which means that it is available under a standard commercial license and under the AGPLv3 license. The AGPL is one of the most restrictive OSS licenses. Interestingly enough, if you ask the authors of the AGPL they will probably say that it is one of the most free OSS licenses, but that is a discussion for another time.

The AGPL is similar to the GPL in that it is viral, but it has the additional property that it defines distribution as also including web requests and computer networks. (Oversimplifying a bit, I know, but that is why the AGPL FAQ exists).

RavenDB licensing terms are pretty simple:

  • You can use RavenDB with OSS projects (OSI approved licenses), and you don’t have to modify your license to match RavenDB’s licenses. The AGPL doesn’t normally allow it, RavenDB contains a specific exception to allow that.
  • If you want to use RavenDB in commercial closed source software, you need to buy a commercial license.

The last statement is where most people have an issue with, so let me be even clearer:

If you are using RavenDB for an internal application that no external user will access, then the distribution clause never comes into effect.

  • Note, however, that distributing AGPL applications also include making them available to users / systems outside your own organization.
  • Well, the previous point isn’t strictly true, even for internal users, in order to comply with the license, you must allow them a way to get the source.

What if you are using RavenDB as a backend server for your application? RavenDB is never accessed from the outside, so it is not distributed. And even the AGPL doesn’t say that making a web request to an AGPL server forces you to be AGPL’ed. That would be an accurate point, except that RavenDB comes in two pieces, one of which is the server, but the second is the client API. And if you use the client API (which is also licensed under the AGPL), your application now must be AGPL’ed.

That is not a problem, right? RavenDB is a REST based system, you can just write your own client, and license that under the BSD.

Not quite.

Why is that? Because of something called a derived work. If you creating a standard HTTP client (PUT, GET, DELETE, etc) that can work against RavenDB, there is nothing that would stop you from doing that. If, however, your client is built to take advantage of RavenDB’s specific features (replication, transactions, batching, patching, etc), then it stopped being a standard HTTP client and became a derived work of RavenDB. At which point, as you probably guessed, the AGPL kicks in again.

All the legalities aside, my intent is that if you use RavenDB commercially, you pay for a commercial license.

Comments

Andrey Shchekin
05/19/2010 07:36 AM by
Andrey Shchekin

The thing that always interested me is "what if I create IRepository, then dynamically discover the AGPL-licensed Repositories.RavenDB". So IRepository can provide batching as an abstract concept, while specific library can map it to RavenDB batching.

That's not about circumventing your license, but might be important when using standard (A)GPL with OSS, for example. I had similar problem with NAnt in Phantom.

Erik van Brakel
05/19/2010 07:45 AM by
Erik van Brakel

I was put off by this announcement until I read the startup offer. For me, the commercial licenses would be a deal breaker for trying Raven over an rdbms.

Not because I don't believe there's any merit in the whole noSQL approach, but because I'm not sure if it's applicable to my way of developing.

However, the startups offer is quite nice. I'm usually not too worried about paying for good tools (got Resharper, NHProf, Balsamiq to name a few), but it does have to add a good return value. I can now safely say I'll give it a spin in my next web app at least.

Another thing. When I buy the perpetual license, does that give me a license for one instance? Would I be able to run several small apps off of it? Small as like: Address book, to-do list, calendar.

NC
05/19/2010 07:57 AM by
NC

Blah I hate OSS, I don't understand all this stuff. I mean if i create a community site thats not designed to make money other than advertising to cover server costs. I don't want to make my site open source to use OSS, does that mean I have to pay for a commercial license?

Sam
05/19/2010 08:13 AM by
Sam

IANAL and I know little about the AGPL, but I'd suspect reverse-engineering a wire protocol will struggle to constitute a derived work in at least some jurisdictions, regardless of licence intent.

Obviously I'm not advocating people do this, but I'd suggest you get someone knowledgeable in this area to review your licensing & confirm that it's doing what you want it to.

Ayende Rahien
05/19/2010 08:34 AM by
Ayende Rahien

NC,

Yes.

Or, for your scenario, you could contact us and ask for a freebie license in return for something like a "Powered by RavenDB" logo.

Richard Dingwall
05/19/2010 08:59 AM by
Richard Dingwall

NC: this was my initial reaction too, but eventually I concluded that releasing your website's code under AGPL is not as bad as it sounds - because AGPL is viral, other people (e.g. competitors) will also be forced to take the same step if they want to start their own site/community based from your code.

Patrick McEvoy
05/19/2010 09:13 AM by
Patrick McEvoy

I'm with Sam, I just don't see how that's derived work at all. Given time someone will write a open source client driver with a more friendly license. Why not just release the client driver as Apache License, just like mongodb do?

NC
05/19/2010 09:28 AM by
NC

@Ayende - Ok cool, that clears that up. Thanks.

@Richard - Not exactly, anyone at any time could use the code to bluntly steal my idea. What do I do then? It's not like I have money to hire a lawyer to sue someone across the otherside of the world for stealing my code and claiming it as their own, for a court case i may or may not win.

If I was to use RavenDB for a client then yeah, paying for a commercial license is fine. But I for one can't afford a commercial license for something i wouldn't make money off to quit my day job.

Brad
05/19/2010 10:01 AM by
Brad

What's that NC? RavenDB Express edition? Good idea!

Demis Bellot
05/19/2010 10:30 AM by
Demis Bellot

Honestly, Ayende I don't know if a commercial-unfriendly licence like the AGPL is going to be very successful in this market. In a world where most of the NoSQL solutions are free (in both beer and speach) it seems like it would be a hard ask to force the purchase of a commercial licence.

One of the benefits and reasons why NoSQL is popular is because it is in-expensive to scale, by looking at your prices it looks more expensive than the most commercial RDBMS's?

I was considering using it as a replacement for db4o for embedded scenarios but can't justify it at this price. Personally I think it would de-value my software having it tied to this cost, especially when there are plenty of sqlite libraries with LINQ providers out there.

I still think there is a very good business opportunity especially with your market reach. I believe a business-model like RedHat where you offer two products a commercially supported and an un-branded source-based community supported option. I believe most companies will still opt for the commercial option, while most ISV's will be tempted by the latter.

You also have a large revenue opportunity to offer courses and certifications as well as commission on contractors/re-sellers.

Richard Dingwall
05/19/2010 10:31 AM by
Richard Dingwall

NC: no they couldn't bluntly steal it because your code would be AGPL licensed too. They would have to release all their code also.

SebD
05/19/2010 10:33 AM by
SebD

Do you have any plans for a RavenDB Express edition?

For small companies / projects, SQL Server Express Edition is a winner: the new 10GB limit / CPU limit makes it suitable for small commercial products.

Having the same restrictions (database size limit, no replicaiton, etc.) would be very nice.

Brad
05/19/2010 10:39 AM by
Brad

@Richard Dingwall

And the world is full of honest people who won't violate a software licensing agreement...

Ayende Rahien
05/19/2010 10:54 AM by
Ayende Rahien

Demis,

For embedded scenarios, it has a different pricing model.

I don't like the support & services model for revenue from a product, it is much more labor intensive and the ROI is much lower.

Jonty
05/19/2010 12:26 PM by
Jonty

Does this mean an internal line of business application or intranet application that is not used by anyone outside the organization would be OK without a commercial licence?

Ayende Rahien
05/19/2010 12:33 PM by
Ayende Rahien

Jonty,

OK without a commercial license is a loaded term.

You are always okay with using the AGPL version.

Internal application simply doesn't trigger the distribution clause, so you don't have to do anything.

Karloff
05/19/2010 12:55 PM by
Karloff

Internal application simply doesn't trigger the distribution clause, so you don't have to do anything.

Does that mean a vendor can offer a RavenDB storage adapter for their commercial application which is released under an OSS license (mind you, just the adapter, not the whole vendor application)?

Does that also mean that now, the vendor can continue distributing their commercial application without RavenDB or the storage adapter, while the client can setup RavenDB with the app and the storage adapter and use the 2 later under the terms of the AGPL or as you stated above "doesn't trigger the distribution clause"?

Again, not trying to purposely deny you your rightful profits... right now it's more a question of whether it even pays off to continue using RavenDB and writing a WPF management console for administering Raven shards, logs, indexes etc. The barrier to give back to the community is much higher knowing that one cannot afford to use the product themselves... which is the case with RavenDB.

Jordan Terrell
05/19/2010 01:24 PM by
Jordan Terrell

I'd have to agree with Demis - the AGPL license isn't going to fly well, considering the, albeit non-.NET, alternative document databases. The commercial pricing is steep to. I agree that you should make money for your efforts, but you are entering a space where there are commercially viable, free alternatives.

As for me, I guess I'm going to have to with MongoDb for now. I want nothing to do with an AGPL license - GPL maybe, but AGPL just goes to far IMO.

Ayende Rahien
05/19/2010 01:45 PM by
Ayende Rahien

Jordan,

I am sorry you feel that way.

Travis
05/19/2010 02:07 PM by
Travis

Sounds fun to tinker with, but until someone provides < $10 month Raven hosting, let me sleep.

Karthik
05/19/2010 02:09 PM by
Karthik

You probably need to clarify the startup pricing a bit. Most startups are cautious against betting their business on a backend technology that is still experimenting with their pricing.

Also what would pricing look like for a non-profit (like a regional .NET User Group) that wants to build a website on RavenDB?

Onur Gumus
05/19/2010 02:35 PM by
Onur Gumus

Everything you said is correct.Except the client. One can reverse engineer the protocol and use it as he likes. And it is NOT a derived work. Any lawyer will tell you that. There are many applications of this like SAMBA, the open source nvidia driver. Although license concept for these examples are different your AGPL does not secure client implementation as well.

Ayende Rahien
05/19/2010 02:38 PM by
Ayende Rahien

Karthik,

Pricing for regional .NET User Group

A link saying that "Powered By RavenDB" would be sufficient.

firefly
05/19/2010 03:36 PM by
firefly

Perhaps the pricing is a little stiff (Nevermind that I think it's TBA now) but I don't get why some people are having problem with the AGPL while Raven is dual license???

I personally couldn't think of a better license than the AGPL for software such as Raven. Even the AGPL might not be restrictive enough IMHO.

Some people just expect others to work for free... :)

Alex
05/19/2010 04:50 PM by
Alex

I had high hopes for RavenDB, ready to use it full time, and now this...the pricing just blew me out of the water. Considering my project expenses are coming out-of-pocket, there is no way to even come close to the prices I saw.

Of course, I went back later and saw that the prices now say TBD. But, I imagine they won't change drastically from what was there before.

Either way, I can't justify the price when there are free, already established alternatives. I guess it's back to MongoDB for me.

josh
05/19/2010 07:30 PM by
josh

I thought it seemed a little high at first, but after reading some of the list discussion I'm coming around a little. It still seems like an express or embedded-only edition would be a good entry level price point.

Just my 2 cents; didn't want to start a whole thread on the ravendb group just for that.

Stephen
05/19/2010 07:36 PM by
Stephen

@firefly, I don't think people expecting it to be free is that unsurprising, sure you spent a lot of time working on this, but you went into it knowing there are databases that are much more proven, and are somewhat more original, and very cheap in comparison.

I've no idea if this will be profitable for you considering the time you spent/spend on it, but when you check the site, which is very minimal at best, and consider the product is just an alternative to others that have been around for a LOT longer, and are essentially 'free', have tons of documentation and developers using them, are already somewhat well ironed out, you'd have to be pretty crazy to pick raven instead.

Ayende Rahien
05/19/2010 07:42 PM by
Ayende Rahien

Stephen,

I am interested to hear why you think the site is minimal at best.

Eric
05/19/2010 08:54 PM by
Eric

Ummm didn't you just post an article about how laying out a pricing tier like this makes you feel like you are getting ripped off? and then you go ahead and do it yourself, except worse? I believe the article was in mention of Mongo HQ?

BTW as for your pricing screen, you are doing it wrong. You do not mention support until you talk to the client as it should be custom tailored to their needs. You can get more money this way, and you also don't scare of potential clients. Additionally, you should have a fixed price listed. The free should not be part of the table as the table is depicting a pricing structure, free should be some print above or below the table explaining the fact that its free to OSS. Additionally with a table that long, you might want to condense to only the differences and have another page that explains the features...You might want to read

Just my two cents!

Ayende Rahien
05/19/2010 09:17 PM by
Ayende Rahien

Eric,

Not quite. What I said is that if your users can't figure out how they are going to get charged until they check the bill, they are going to feel ripped off.

Paying for expensive software is not ripping off.

Thanks for your comments regarding the pricing table.

NC
05/19/2010 11:52 PM by
NC

Eric mentioned your post about MongoDBHQ Pricing structure and how you didn't understand it.

I'm saying I don't understand what relevance it is to your licensing because it's licensing two completely different things.

You're licensing a product, they are licensing hosting. MongoDB itself is 100% free. Their page is pretty clear so I'm not sure at what point you found it confusing or didn't understand it.

alberto
05/20/2010 01:22 AM by
alberto

I have no interest in Raven atm (or any other NoSQL DB, in fact), but just wanted to mention, as some others already did, that you cannot consider derived work a client that uses a reversed engineered protocol. If someone creates such a client and releases under a different license, you'll have to live with that.

I mention this not to criticize you for choosing this model, but to prevent you from unexpected results that may piss you off.

I wish your business the best, you deserve it.

Richard Lopes
05/20/2010 08:41 AM by
Richard Lopes

I guess you can say that you just shoot yourself in the foot with that "licensing" stuff.

I really don't see ANY reasons for using RavenDB over an existing NoSQL solution. You need to be more humble and realistic here. Do some market research.

Time will maybe tell if you are right or not, but that's my opinion.

Andy
05/20/2010 08:51 AM by
Andy

I would stop using the word "perpetual" as it can be a bit fuzzy what that means for non-native English people. Better to use one time fee.... or something similar...

I think the word "perpetual" have caused a lot of confusion.....

Jason Short
05/21/2010 03:51 AM by
Jason Short

I honestly wonder why the free part of the license at all other than to try to generate publicity. If you want to make it commercial than do so, but don't slap the Open Source label on it and then dual license, etc.

I have no problem with commercial software.

I have no problem with open source software.

I have a problem with commercial software that pretends to be open source to generate publicity and then really can't be used in anything.

Don't sit on the fence. Do one thing or the other.

Parag
05/21/2010 06:35 AM by
Parag

Ayende honestly RavenDB looks good but the pricing implies that it is only for the BIG guys and not small ISVs like us.

There should be Developer versions don't you think ? Priced right, something like VistaDB pricing ?

Ayende Rahien
05/21/2010 07:54 AM by
Ayende Rahien

Jason,

RavenDB is OSS, it also comes with a commercial license.

This is a very common model in the OSS world. From MySQL to ExtJS, as two prominent examples

Ayende Rahien
05/21/2010 07:55 AM by
Ayende Rahien

Parag,

The pricing has changed

Anders
05/21/2010 08:48 AM by
Anders

Maybe it's just me but I cannot find anything about pricing on the Raven db site??? What do I have to pay to use it commercially?

Ayende Rahien
05/21/2010 09:13 AM by
Ayende Rahien

Anders,

It is up there now.

Leonid Shirmanov
05/22/2010 01:00 PM by
Leonid Shirmanov

I didn't quite understand the OEM licensing scheme. Could you please draft out any sample for a boxed product uses RavenDB.

For instance, the application that has a server side that's supposed to be installed to customer's server and includes RavenDB server as part of it, and UI application used by users and accesses that server using RavenDB client.

How many licenses should I get for that scenario? Is there any difference if the client application is either desktop or web?

Ayende Rahien
05/22/2010 02:11 PM by
Ayende Rahien

Leonid,

OEM applies if you are running this in embedded mode. For example, if you want to run Raven on your Windows application.

In your scenario, it would appear that you need two licenses:

a) server license for the server part

b) OEM license for the client application

Ayende Rahien
05/22/2010 02:11 PM by
Ayende Rahien

Leonid,

OEM applies if you are running this in embedded mode. For example, if you want to run Raven on your Windows application.

In your scenario, it would appear that you need two licenses:

a) server license for the server part

b) OEM license for the client application

Leonid Shirmanov
05/22/2010 03:05 PM by
Leonid Shirmanov

Ayende -

Yes, I see... and both licenses are the annual subscriptions?

Ayende Rahien
05/22/2010 04:25 PM by
Ayende Rahien

Leonid,

OEM license is annual

server is either monthly or one time

Comments have been closed on this topic.