jOOQ™ 3.2 Offering Commercial Licensing and Support

Four years ago, the Java database middleware market was dominated by a variety of ORMs implementing JPA. This paradigm was hardly challenged by alternatives. There was a gap for an API making SQL a first-class citizen in the Java language ecosystem and jOOQ had come to fill this gap. With jOOQ, developers who engage heavily in writing SQL finally had a tool that helped them express SQL almost natively in the Java language, leveraging the Java 6+ compiler’s features to validate their SQL statement’s syntax and type correctness. In the last four years, jOOQ had become increasingly popular and mature. jOOQ is used by many demanding customers operating on large and complex databases. The feedback that we have had from those customers was unanimously positive, although there was one thing missing. That one missing thing was professional support, warranties, and thus commercial licensing. With the new jOOQ 3.2, apart from introducing great new features, we are changing quite a few things on how we operate.

jOOQ is now jOOQ™
After jOOQ 3.1, we have now published jOOQ™ 3.2

At Data Geekery GmbH, we believe in Open Source. But we also believe in the creative power enabled by commercial software. This is why we have chosen to implement the following dual-licensing strategy:

  • Users using jOOQ with popular Open Source databases will continue to be able to get our high-quality, integration-tested Apache Software License 2.0 licensed free Open Source distribution from Maven Central, from GitHub, or from the jOOQ website. At the same time, they will continue to profit from our free community support in English on the jOOQ User Group.
  • Users using jOOQ with commercial databases will be able to profit from our competitive commercial jOOQ subscription licenses, which include support for commercial databases, as well as professional support in English, German, and French, early access to releases and bugfixes, warranties, custom engineering and much more.
Our license models

Of course, customers using jOOQ with an Open Source database can also purchase a commercial license subscription, if they wish to profit from our professional support and services. In the following FAQ, we’ll answer to some questions you may have:

Why offering a workstation license?

We believe that the main added value of jOOQ is added to our customer’s development lifecycles. jOOQ helps developers write SQL code in 10% of the time they needed if they had used JDBC or other String-based approaches directly. At the same time, jOOQ and its powerful source code generator help prevent coding mistakes early in the development lifecycle, preventing 90% of the usual SQL mistakes. jOOQ is thus a development tool, as opposed to a database, which is a storage tool adding most value at runtime. This is why jOOQ offers a workstation license, as opposed to most databases offering server licenses.

Why not just offering support for an all-Open-Source library?

We’re aware of vendors that sell all-Open-Source software, making money only with expensive support subscriptions. This is a viable model for vendors offering server software, such as databases, where 24/7 support is very crucial. It is also a viable model for vendors offering very complex software, which needs a lot of additional, costly consulting efforts. jOOQ is none of the aforementioned. It is middleware, which is very easy to use and will not generate any consulting business as it adds almost no complexity on top of SQL itself. We have challenged our decision with a variety of existing users and customers, and we firmly believe that we can add most value with a dual-licensing model that builds upon dependent database licensing models. After all, spending a bit of money on a jOOQ license will save our customers an incredible amount of money on their development lifecycle with powerful databases like DB2, Oracle, SQL Server, or Sybase.

Why stick with the Apache License?

The Apache License has served us well in the past four years. It is very liberal while at the same time, protecting our trademarks. It is a license that has enabled us to grow and get lots of high quality community feedback and contributions. We do not want to follow suit with other dual-licensing companies who go down the *GPL path, as we believe that dual-licensing *GPL software is not true to the spirit of Open Source Software in the long run. By staying with the Apache License, we want to express our deep commitment to Open Source.

What about contributor copyrights?

We take copyrights seriously. This is why we had our major contributors sign an agreement to transfer all copyrights to us. While we need to settle copyrights, we still want to publicly attribute authorship to those contributors who have shared code or documentation with us. Of course, we also welcome all future contributions by our community! Should you as a contributor feel that your copyrights are challenged or infringed by our dual-licensing, please do contact us directly.

What happened to the jOOQ Console?

While the jOOQ Console 3.1 will continue to be available to jOOQ 3.2 users from Maven Central, the jOOQ Console development has been stopped in its current form. It will make room for a new, commercial profiler software that Data Geekery will develop in the near future, stay tuned.

Why do this at all?

Because we want to show our commitment to jOOQ, which is much more than a library. It is a vision of a better Java and SQL integration. It is innovation in various fields of the Java ecosystem. We want to:

  • Support those who love both Java and SQL and who were denied appropriate tooling, in the past.
  • Further develop the integration of internal domain-specific languages in Java, by formalising language aspects of software like jOOQ. Not just for jOOQ.
  • Expand our high-quality SQL integration into the Scala ecosystem by offering a native Scala API – and possibly core.
  • Further improve the jOOQ Console to provide more high-quality development tooling.
  • Make our SQL knowledge available to our customers through our blog and source code.

In order to implement the above plans, we need to create a business from jOOQ. And we believe that this business will be extremely interesting both to us and to our customers. Together, as the jOOQ ecosystem, we’ll create a better Java/SQL world! Let us start with jOOQ 3.2!

17 thoughts on “jOOQ™ 3.2 Offering Commercial Licensing and Support

  1. Good luck. I’ve spoken with people earlier how it would be possible to earn money from paid hibernate alternative and consensus was that it would be difficult to push it. However, you already have quite some popularity which is a starting point.

    1. Thank you for the feedback. I am positive that I can combine the “need for change” arising from the ORM impedance mismatch with the “need for SQL” that has been neglected even before ORMs. And besides, jOOQ is pretty good. All that is needed is marketing and sales.

  2. Well, there goes any chance of convincing my workplace to switch from Hibernate to jOOq. And here I thought I was finally going to be able to use something sane to access my database….

    I wish you the best, but I have a feeling you’ll be losing a lot of users from corporate environments like mine, where our bosses willing to pay through the nose for Oracle or SQL Server, but not a penny for something to make our jobs easier.

    1. Hi Joseph,

      Thank you for your honest feedback and I am very sorry to hear that our licensing plans might not work out for you.

      Do note, however, that we’re in an early stage of setting up a business and we’re quite open to alternative models. You’re writing from a university e-mail address, is this your employer? Do you think that an academic license (similar to Yourkit’s Academic License) might be more suitable to you? Or do you see any other options to help you convince your managers (e.g. LLBLGen has some slides to help developers convince their managers)? I’m more than happy to discuss alternatives! Feel free to contact me through direct e-mail.

      1. Thank you for your feedback, David. Is there anything concrete you would like to add to Joseph’s words?

        We don’t believe that Joseph was right when he wrote what he did. In the meantime (1.5 years later), we have acquired a lot of very happy customers who are totally rocking their Java / SQL integration and who didn’t have any problems “selling” the tremendous ROI of using a professional tool for professional SQL developers to their management, comparing the very low license fees with the alternative of weeks to months of pain and suffering with alternatives.

        We hope to be able to do the same for you, so how can we help you achieve that?

          1. Yes. We support:

            • DDL
            • Stored procedures
            • 18 RDBMS (with sophisticated integration tests)
            • Nested unions / joins / derived tables (try those with Querydsl, curious to learn how it performs)
            • Custom SQL templating
            • SQL transformation SPIs
            • Row-level security
            • Multi tenancy
            • SQL rendering SPIs
            • Active Records
            • User-defined types
            • Vendor-specific data types

            And we’re currently working on:

            • Procedural SQL
            • Nested records and MULTISET support
            • A SQL tuning advisor

            And, we sincerely believe that:

            • We really know SQL, and as our user, you’ll greatly profit from this knowledge
            • We are actually more “open” (blogging, contributing to all Open Source databases, transparency about motivation / price model / intellectual property, etc.)
            • Our support is much better
            • We have far fewer bugs due to a superior internal design :-)
            • You don’t really need a single API that supports multiple data stores and JPA. The additional complexity only distracts those users who really want to write SQL
            • We’re here to stay, we’ve validated our business model. Not sure when Timo will be fed up with Querydsl
            • Even if you have to pay for a license, your total cost of ownership will be much lower because of all of the above

            This stuff may or may not matter to you. But if you’re curious about any of the above, I’m more than happy to walk you through the details

  3. Hi Lukas,

    The first thing that came to my mind is that you should have chosen .Net rather than Java ;-).
    Why? Because java is the world of free IDEs, free frameworks and free libraries, an obvious choice for managers having urchins in their wallet. I think one can say that .Net is different by nature.

    What I would be afraid of, which is one of the biggest problem with dual licensing models, is that someday you’d need to limit the “free” version to encourage people to pay for some value added service. If what you receive for free is good enough, you have no reason to pay.
    Have a look at what others have done (personal feelings but quite objective):

    Magento : free => horrible documentation, crash test arena for the commercial edition. You pay for training, you pay for certifications or you use the much more powerful enterprise edition. They attract you with free, community stuff and hope you get stuck in the middle of the project, tired to read irrelevant forums or blog articles and finally pay once you realize your time isn’t free.
    Pentaho : free => bad doc, less tools. Again, pay for better tools and support or just “epically fail”. A member of the team even blogged about the “free vs non free” problem, basically the need for a “not too good free version” vs a “vastly superior commercial version”.

    An important thing when you choose a library is the support you can receive, which is also influenced by the popularity. In the case of jooq, discussing directly with the library author on the mailing list made the difference for me, and currently it’s free (and according to your post, it should stay so). Is it really possible knowing that you’ll also need to promote your value added services and probably can’t afford to give everything for free in the long run?

    I would feel better if you had been hired by the apache foundation or received some kind of sponsorship. Because it’s probably going to be difficult to “sell” a java library while giving so much for free. For me it’s a bit like a restaurant that would offer its “daily special” and would only ask to pay when people choose something else in the menu ;-).

    1. Hi Stéph,

      Thanks a lot for your feedback. Yes, well, my 2013 Adobe Basel “excursion” was partly aimed at seeing if the Apache Foundation could be a good new host for jOOQ. It turned out that: no. It’s full of politics, bias, deceiving people about the true “owner” of a product (i.e. the main sponsor) and their true strategies, etc. Don’t get me wrong I’m not being cynical. Adobe has very good reasons for open-sourcing parts of their Stack. I just don’t want to engage in such business. Nonetheless, it was a good time and there were awesome people, I’ve met.

      Now, your arguments about free = horrible documentation, services, etc. vs. commercial = totally awesome is a good show case for my future sales, which will go into an entirely different direction. Data Geekery will not play this silly sales game of baiting people into hate-loving a crappy variant until it is just unbearable. My sales strategy includes the fact that the free variant is also totally awesome:

      • awesome documentation
      • similar support (well, best effort, but so far that has been pretty good)
      • complete feature set

      In fact, I will also use these arguments when people think that free competing product(s) might be a better choice. Their user groups tend to be full of NullPointerException and ClassCastException reports, which they don’t get in jOOQ. But there’s a simple caveat. You often cannot chose your database. You may have to use Oracle for this or that reason. Or Sybase. And you already love jOOQ because even with PostgreSQL or MySQL, it’s awesome. It’s hard to use an inferior alternative just to save a few bucks, right?

      I think that specifically jOOQ’s PostgreSQL user base will help promote jOOQ in the near future in return for a free awesome tool.

      And then, of course, I have plans for the future, exclusively for commercial add-ons.

      So, stay tuned! And again, thanks for the feedback. I greatly appreciate it.

      1. Hi Lukas,
        You are welcome. I have just noticed that big thread on the mailing list and read the licence. Have to agree that the workstation license is not the easiest to understand. As an example it may or may not allow you to install on multiple computers that you own. For example I never purchased vmware workstation because its licensing model would require me to to buy three licences, one for the office, one for home, one for my laptop (I travel with my complete DEV environment on a VM).

        You cited llblgen pro, an indeed excellent and successful commercial product. apart from the fact that he’s evolving in a customer-do-pay world and came before Linq at a time .Net was seriously lacking serious free ORMs, there is a difference worth mentioning : using the generator requires a licence but using the generated code and runtime libraries does not. So four people working on a project would not need 4 licenses. As far as I understand jooq license (I hate reading legal boilerplates and often get these wrong, I strongly advise you add a synthetic “can do, can’t do” summary on the website and be as clear as possible regarding runtime distribution issues).

        Jooq is certainly worth paying for, it’s clear that companies spending large amounts to run costly database servers shouldn’t mind a few extra bucks but don’t underestimate that there will probably be someone to say “Just use JPA, it’s free, it’s standard and mature(?)”, or someone to argue that your small company doesn’t offer enough guarantee compared to well-established solutions, especially if they once took the eBean path (almost dead JPA competitor). Can’t say how much I *HATE* saying negative things like this on a product I find so promising. I just remember an excellent, small footprint, .Net database called vistaDB that failed commercially despite being absolutely great. As if people kept favoring inferior, harder to use products just to save a few miserable bucks.

        Kind regards

        1. Hi Stéph,

          Yes, a license FAQ will be put up this week. In principle these terms are quite clear, once you get a hang of reading the legal stuff, which no one sane does. So it’s true that a clean overview is very helpful.

          I agree that the free/standard/mature argument is one against jOOQ (not sure about actual maturity, but certainly about perceived maturity). This is why I will have to put up something like an ROI calculator, as Axel Fontaine (the developer) has indicated on the user group. This is also how ZeroTurnaround / JRebel innovate, by constantly claiming that their awesome tools help saving so much money compared to the Enterprise stuff sold by IBM/Oracle, etc. In the end the only important question is whether I will have enough will to continue to sell and market jOOQ. If technically awesome tools fail commercially, it’s often because the engineer doesn’t like that “other type of job”. I like it, so let’s see… :-)

          1. Hi Lukas,
            Yes, I know you have heard many negative comments those past days. Let me be positive once, I am sure your hard work deserve payment, and above all, working in a start up myself, I firmly believe that you had to put all your doubts aside and just try… What do you need to get started? A laptop and some spare money, you don’t require millions of investment to equip a workshop and put yourself into too much debt.

            Even in case you fail (and I really wish you won’t) or just can’t get yourself enough revenue, it’s not the end of Lukas Eder as a developer. It would still be a nice experiment!

            1. Hehe, thanks Stéph, I appreciate that. You’ve found the right words: I just have to try. But then again, the laptop won’t be enough. Two 27″ flat screens are better ;-)

  4. Im sad to see support for Oracle, SQL Server, DB2, Ingres and Sybase dropped from the free version. I was hoping to write an open source product on top of jOOQ but this is a deal breaker. I guess I’ll either fork the code prior to the license change or try something else.

    1. I’m sorry to hear you’re considering this licensing restriction to be a deal breaker. Maybe, I can convince you to reconsider? We’re talking with various OSS vendors and there are a variety of models that can work for them and also for you. For example, you could become a jOOQ reseller and take a margin for yourself if your own customers use commercial databases. This is what we had offered to Apache CloudStack and Apache GORA, recently, and they were quite interested.

      I’m more than happy to discuss details on the user group, or by E-Mail, if it’s not too late.

Leave a Reply