Hazelcast’s Business Model, Open Source, Open Standards & Community

The times they are a changin’. We have noticed that our competitors have been changing their business models, open sourcing their cores and talking about building communities.

For ourselves, we aren’t announcing any changes. And that’s the point. Hazelcast has a commitment to these issues which run deeper than business expediency.

So, while we aren’t changing any of this, we thought it was time to explain our long-standing views on these topics.

Our Business Model

The Hazelcast project started out and remains an Apache 2 licensed open source project.

Hazelcast Inc., the company, started out with a business model first of consulting, then added support and in 2013 added commercially licensed enterprise features. In 2014 we bundled these features into Hazelcast Enterprise.

Our business model is commercial open source, also known as Dual-Licensing. For us it means we have an open source core for which we provide support. And we have additional enterprise features that are in our Hazelcast Enterprise edition. The following architecture diagram shows how this looks today, with the open source core in salmon and the enterprise features in blue.

Hazelcast Architecture Diagram

So why did we evolve to this model? I have been an open source user, advocate and maintainer for a long time. I have watched with interest the experiments around open source business models and have participated in these experiments myself over the years. While there are some notable exceptions I think in most cases commercial open source is the model most capable of creating and sustaining enterprise software while being viable from a business standpoint. Without the latter it is very difficult to sustain enterprise software.

When our competitors say they have open sourced, a reading of the fine print reveals that they have open sourced their cores, but retained some enterprise features as closed source. So they should more properly refer to this as we do.

Our Open Source Community

The core of Hazelcast has been Apache 2 form the beginning without change. The developers who have joined Hazelcast over the years all care about this. And they have been very good at working with contributors and the contributions they make, whether they be mailing list posts, bug reports, feature requests or pull requests.

As a result, we have 92 contributors to Hazelcast of which 68 are external. While our competitors talk about building a community we have been doing it for six years.

Hazelcast GitHub Commits

We have a contributor agreements for contributors and we list our external contributors and track whether an agreement has been complete. Our list of external contributors shows who has signed

Whether internal or external, contributions are made to Hazelcast by pull request. See Developing with Git, our guide to working with our Git repositories. We have a two stage review process for pull requests, with the commit being done by the second reviewer.

Open Source AND Open Standards

Open source without open standards still has proprietary APIs. The cost of change is just as high as for commercial software with proprietary APIs. Hazelcast is about open source AND open standards.

Hazelcast has always used existing open standards where possible. Most features use interfaces from java.util.concurrent. As an example for queue we use java.util.concurrent.BlockingQueue. But as there is no topic in Java SE, we use our own com.hazelcast.core.Topic.

An important standard in our space is JCache. Hazelcast joined the expert group for JSR107 last year and completed a full implementation covering both client server mode and embedded server mode with Hazelcast 3.3.1 back in October 2014 and have been maintaining it and improving it since.

Our competitors who recently open sourced their cores have not shown the same interest in open standards. They are the only two IMDGs which have not yet implemented the standard. And one never bothered to join the expert group.

Hazelcast Open Source Advocate

Many of you will have seen or heard Chris Engelbert. He was an Engineering but in December moved across to a joint role of Solution Architecture and Evangelist at Hazelcast. In January we created the role of Open Source Advocate – and of course Chris got the job!

The idea is that as our number of internal developers grow (we have 25 as of February 2015) we want to make sure that the external contributors needs and voice remains heard.

Hazelcast now runs in some of the world’s largest companies and in many mission critical applications. To achieve enterprise-grade open source we need to have a high level of rigor around our engineering process, including pull requests.

For pull requests we need high test coverage (87% method/85% line), good documentation (we have a checkstyle configuration) and sometimes, for a large change, a design document. Chris will help our contributors to meet these requirements and get their code into Hazelcast.

Hazelcast Leads the Way

It is often said that imitation is the highest form of flattery. We feel flattered.

We always anticipated that we would commoditize the IMDG market. I think what we are now seeing is what commoditization looks like. We are completely comfortable in this world. Depending on their own needs, users either use open source and interact with our community, or become customers using Hazelcast open source with basic or professional support subscriptions, or use Hazelcast Enterprise, with high-value enterprise features.

For Hazelcast we plan to innovate with many IMDG features that our users and customers are asking for, and develop new technologies like High-Density Memory Store and apply them to use cases like High-Density Caching.