Hazelcast is a radical, new approach towards data that was designed from the ground up around distribution. It embraces a new, scalable way of thinking in that data should be shared for resilience and performance while allowing us to configure the trade-offs surrounding consistency, as the data requirements dictate. Hazelcast is a distributed, highly available and scalable
Why Hazelcast is required?
A traditional application architecture consists of various modules interacting with common Database.
This allows us to easily scale our application by adding more hardware to increase processing capacity. However as there is only a single database layer this leads to resource saturation leading to performance issues.
This issue can be resolved by making use of cache. These are stand-alone single instances.
There are cache consistency issues. If there is a change in database, the cache might not get updated.
Hazelcast is a radical, new approach towards data that was designed from the ground up around distribution.
It embraces a new, scalable way of thinking in that data should be shared for resilience and performance.
Features of Hazelcast-
- The data is always stored in-memory (RAM) of the servers.This makes it incredibly fast.
- Multiple copies are stored in multiple machines for automatic data recovery in case of single or multiple server failures. In the event of failure, the overall cluster will not suffer any data loss.
- Major feature of Hazelcast is its masterless nature. Each node is configured to be functionally the same and operates in a peer-to-peer manner.
- The data model is object-oriented and non-relational.
- Servers can be dynamically added or removed to increase the amount of CPU and RAM.
- The data can be persisted from Hazelcast to a relational or NoSQL database.
- A Java Map API accesses the distributed key-value store.