As others have pointed out, I would expect that in a per-developer
licensing that I would only pay for developers that actually need to touch
the Raven related pieces. If I have a team of 5, and 3 guys are doing
front-end stuff and two are doing back-end, then I would expect to purchase
two developer licenses. I would still expect the entire solution to
compile for all 5 of them.
I agree that these kinds of licenses can be difficult or impossible to
enforce, but I think ultimately they work better than per-instance
licensing. Especially if you are a dependency in someone else’s project.
In our case, we are an ISV that is doing both traditional licensed
deployments and SaaS hosted models for our product. We have traditionally
used SQL Server, which meant that for hosted we would buy our own servers,
and for licensed we would require the customer to have a SQL Server. I
think you can do that for SQL, because many people already have SQL Server
licensing agreements with Microsoft, and smaller customers always have the
option of SQL Express.
If we were to do the same thing with Raven, our customers wouldn’t have the
first clue about where to begin. We would have to provide them their Raven
license. If we had to tell them to go purchase their own Raven license, it
would make selling the product very difficult. Now, if we have royalty
free distribution for the embedded product, then it’s not an issue for
smaller customers. But it would be equally important to be able to
distribute Raven with our software even with the server edition for larger
customers. Perhaps the license for that is more expensive on our part, or
perhaps it’s not “royalty-free”, but we increase the cost of our software
by some amount to include the cost of the Raven license. Either would be
The big question is how much performance can we expect from the embedded
version vs. the server version? Where do we draw the line from a licensing
standpoint? It would be much easier if this was just a technical question
of whether or not you wanted the http layer or the direct connection. The
licensing issue makes it more complicated.
The absolute best situation from our perspective would be to have one
larger annual fee for the ability to deliver either embedded or full server
with our solution, royalty-free. We would love to pay this fee
per-retail-product, rather than per-developer. Perhaps we could key the
raven instance so that it only worked with our software. That would
prevent the end-user from getting a completely free license of Raven. Perhaps
this lines up with your business model, perhaps not. We would be willing
some level of compromise.
That would be for the licensed, deployed version of our software. For our
SaaS model, we’d pay separately per instance for our own instances that we
use to host the SaaS version.
I’m not sure how I feel about the multi-tiered pricing based on number of
processors, memory, or disk space. This always bothered me about SQL
Server. I don’t think Raven should work that way. If you have a fast
machine, why not let Raven take full advantage of it? Crippleware scares
me. At the same time, you don’t want someone to take one license and run
it on 20 machines simultaneously. For that, they should either have 20
licenses, or a single license that permits up to a number of machines to