Hazelcast is the leading open source in-memory data grid.
For the vanguard of distributed computing, we often get lots of enthusiastic kudos like the following:
Yeah! I won a book on Hazelcast by answering their survey. Hazelcast is great, and solves very simply many problems in distributed systems. — Sylvain Wallez (@bluxte) November 7, 2013
However, for developers who are not deep into distributed computing who are beginning to hear the buzz about Hazelcast, we want to let you know: Hazelcast is for you!
In this case, we would like to explain what Hazelcast can be used for. So here are some of the popular use cases out there.
1) NoSQL Key Value Store
In our recent user survey, the most popular usage of Hazelcast is as a Key Value store. Hazelcast supports super easy to use distributed map. What does this mean? It’s really simple to just store keys and values into hazelcast.
Why would you do this in Hazelcast? Other than being really easy to do, Hazelcast provides a distributed in-memory store of your distributed hashmap, which means that it performs really really fast. The other advantage of this is that Hazelcast automatically clusters together machines to store your hashmap, which means that Hazelcast can grow really really big in a simple elastic way.
So in short, the key advantages to Hazelcast for Key Value Store are:
- Easy (really easy! check it out)
- Fast (really fast in-memory)
- Big (really big, and elastically scalable)
2) Web Session Clustering
Web servers and applications servers can easily be made to “Scale Out” to handle huge loads by adding things like a load balancer. However, web applications need to hold the “state” of a given user session. First and foremost, the user identity and authentication state–is the user logged in? Is the “user” accessing it doing so via API? Is there a security token that represents that user?
So a session lives on the machine where it was first created. This forces all user traffic from that user to go through that specific machine. This is actually the most reasonable thing to do as it improves performance, but over long periods of time such as days and weeks, it may make less sense to bind a user to a machine. Many modern web applications have a “keep me logged in” checkbox that makes this possible. Also, there may be instances where a machine needs to be restarted or spontaneously crashes. You do not want to suddenly destroy all of the user’s work or transactions in such cases.
How does Hazelcast Help?
Hazelcast is easily able to handle this type of case with in-memory performance, linear scalability as you add new nodes and reliability. This also takes advantage of Hazelcast’s easy deployment footprint, as the Hazelcast is a very small library of 2.6MB and can easily be embedded in every copy of your web application server or servelet engine such as Tomcat. Because of this deployment approach as well as Hazelcast’s ability to automatically discover and cluster with peers, Hazelcast provides drop-in session clustering ability for any Java enabled server. It requires no additional investment in hardware and elastically scales as you add app servers.
This is a great way to ensure that session information is maintained when you are clustering web servers. You can also use a similar pattern for managing user identities. Learn how easy it is to maintain session state across a set of servers here!
3) Scale your Cloud or SaaS app
If you are building your own Cloud or SaaS apps, you may want to consider using Hazelcast.
For example we have a bunch of open source projects benefiting from doing exactly that.
- Apache Karaf/Cellar
- Apache Drill
- Apache Camel
These app providers love the fact that Hazelcast is a small 2.6MB JAR library that you can just embed. Secondly they love that it is an Apache 2 license which makes it extremely friendly and easy to embed. Thirdly they love the minimal (read:none) configuration required to get it to work unlike solutions like Zookeeper.
4) Oracle Coherence Replacement
Enterprises demand proven high performance transactional systems that can scale out elastically, and provide concurrency across distributed application nodes.
This often drives the purchase of expensive and proprietary solutions such as OracleCoherence across a host of projects. Although Coherence is a mature product in the financial services sector, several critical issues are driving projects to replace OracleCoherence with Hazelcast in many customers worldwide.
These issues include:
Per-core pricing model: Oracle’s restrictive per-processor-core model forces users to pay Oracle more each time they upgrade their servers. Costs can double just by moving from 4-core to 8-core servers.
Aging technology: Oracle Coherence is feature rich, but the foundation of the product is approaching ten years old. This product was built on much earlier versions of Java, and the production status of Coherence deployment prohibits rearchitecting the product.
De-prioritization of Coherence: Oracle is increasingly bundling Coherencewith the 12c In-Memory Database product in order to meet the scalability and performance claims associated with 12c. This decreases the overall revenue associated with Coherence and therefore its relative value in the portfolio.
Inability to support the product: The brain-drain associated with new acquisitions and new Oracle “star products” reduces the ability for Oracle to support Coherence customers. Although their pre-sales technical team is still quite good, their ability to support customers post-sale through deployment and beyond is diminishing.
Lumbering deployments: An Oracle Coherence deployment typically takes more than 6 months, often including expensive consulting.
5) Software AG Terracotta Alternative
Enterprises who are considering Software AG Terracotta should take a look at Hazelcast, which should be able to provide a great deal of functionality with a much improved ownership experience.
Developers are often attracted to Enterprise Ehcache because of their use of the popular Ehcache project. Ehcache is a solid open source project and so it’s attractive to consider the possibility of an Enterprise-grade option. For users who require fully distributed caching, we would ask to be considered.
Just give it a try
Whenever anyone asks us about competitive products, we are happy to name them and suggest that users try them. We think after trying them all you will love Hazelcast the most.
On the whole, we prefer not to bad-mouth competitive products, we tend to prefer to just ask evaluators to try Hazelcast. But we are hearing from evaluators that there are important evaluation criteria that go beyond product features. Some of these considerations that we have heard around Software AG Terracotta
Cost: Software AG products are considered expensive Entry Point: Software AG’s sales team is not interested in doing business with customers who want to spend less than $200k and so there is a steep barrier to many organizations to get the benefits of their professional products.
Ownership Experience: Software AG much like Oracle has a strong sales culture of extracting revenue from customers using license audits and establishment of large legal contracts which constrain usage of the product. Usage outside of these constraints often causes scrutiny and triggers costly and complex license compliance issues.
To read more about Hazelcast as an alternative to Software AG Terracotta click here.