In today's business world, companies with high transaction volumes and increasing number of users need scalable and non-stop applications. It is quite rare to see one server application in such environments.
As we start running applications on several servers in order to scale and be fail-safe, we quickly realize that we might need to share data among servers or cache data to achieve faster response times while trying to avoid single point of failures.
Hazelcast allows you to easily share and partition your application data across your cluster. Hazelcast is a peer-to-peer solution (there is no master node, every node is a peer) so there is no single point of failure.
Simplicity matters a lot when designing and developing large systems. Simplicity matters a lot more when applications are distributed. It should be a pleasure for an architect to design and a developer to build otherwise it can lead to complex design and development which will also be nightmare to maintain.
Hazelcast is simple! JVMs that are running Hazelcast will dynamically cluster. Although by default Hazelcast will use multicast for discovery, it can also be configured to only use TCP/IP for environments where multicast is not available or preferred. Communication among cluster members is always TCP/IP with Java NIO beauty. Default configuration comes with 1 backup so if one node fails, no data will be lost. It is as simple as using java.util.{Queue, Set, List, Map}. Just add the hazelcast.jar into your classpath and start coding.