In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
, Hazelcast is a unified real-time data platform implemented in
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
that combines a fast
data store
A data store is a repository for persistently storing and managing collections of data which include not just repositories like databases, but also simpler store types such as simple files, emails, etc.
A ''database'' is a collection of data that ...
with
stream processing
In computer science, stream processing (also known as event stream processing, data stream processing, or distributed stream processing) is a programming paradigm which views Stream (computing), streams, or sequences of events in time, as the centr ...
. It is also the name of the company that develops the product. The Hazelcast company is funded by
venture capital
Venture capital (VC) is a form of private equity financing provided by firms or funds to start-up company, startup, early-stage, and emerging companies, that have been deemed to have high growth potential or that have demonstrated high growth in ...
and headquartered in
Palo Alto, California
Palo Alto ( ; Spanish language, Spanish for ) is a charter city in northwestern Santa Clara County, California, United States, in the San Francisco Bay Area, named after a Sequoia sempervirens, coastal redwood tree known as El Palo Alto.
Th ...
.
In a Hazelcast grid, data is evenly distributed among the nodes of a
computer cluster
A computer cluster is a set of computers that work together so that they can be viewed as a single system. Unlike grid computers, computer clusters have each node set to perform the same task, controlled and scheduled by software. The newes ...
, allowing for
horizontal scaling of
processing and available storage. Backups are also distributed among nodes to protect against failure of any single node.
Hazelcast can run on-premises, in the cloud (
Amazon Web Services
Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon.com, Amazon that provides Software as a service, on-demand cloud computing computing platform, platforms and Application programming interface, APIs to individuals, companies, and gover ...
,
Microsoft Azure
Microsoft Azure, or just Azure ( /ˈæʒər, ˈeɪʒər/ ''AZH-ər, AY-zhər'', UK also /ˈæzjʊər, ˈeɪzjʊər/ ''AZ-ure, AY-zure''), is the cloud computing platform developed by Microsoft. It has management, access and development of ...
,
Cloud Foundry,
OpenShift), virtually (
VMware), and in
Docker containers. The Hazelcast Cloud Discovery Service Provider Interface (SPI) enables cloud-based or on-premises nodes to auto-discover each other.
The Hazelcast platform can manage memory for many types of applications. It offers an Open Binary Client Protocol to support APIs for any binary programming language. The Hazelcast and open-source community members have created client APIs for programming languages that include Java,
.NET
The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
,
C++,
Python,
Node.js and
Go.
Usage
Typical use-cases for Hazelcast include:
* Application scaling
* Cache-as-a-service
* Cross-
JVM
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descri ...
communication and shared storage
*
Distributed cache, often in front of a
database
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
*
In-memory processing and analytics
* In-memory computing
*
Internet of things
Internet of things (IoT) describes devices with sensors, processing ability, software and other technologies that connect and exchange data with other devices and systems over the Internet or other communication networks. The IoT encompasse ...
infrastructure
*
Key–value database
*
Memcached
Memcached (pronounced variously /mɛmkæʃˈdiː/ ''mem-cash-dee'' or /ˈmɛmkæʃt/ ''mem-cashed'') is a general-purpose distributed memory-caching system. It is often used to speed up dynamic database-driven websites by caching data and object ...
alternative with a protocol-compatible interface
*
Microservices
In software engineering, a microservice architecture is an architectural pattern that organizes an application into a collection of loosely coupled, fine-grained services that communicate through lightweight protocols. This pattern is characterize ...
infrastructure
* NoSQL data store
* Spring Cache
* Web Session clustering
Vert.x
Eclipse Vert.x is a Polyglot (computing), polyglot event-driven architecture, event-driven application framework that runs on the Java Virtual Machine.
Similar environments written in other programming languages include Node.js for JavaScript, Tw ...
utilizes it for shared storage.
Hazelcast is also used in academia and research as a framework for distributed execution and storage.
* Cloud2Sim leverages Hazelcast as a distributed execution framework for
CloudSim cloud simulations.
* ElastiCon distributed SDN controller uses Hazelcast as its distributed data store.
* ∂u∂u
uses Hazelcast as its distributed execution framework for near duplicate detection in enterprise data solutions.
See also
*
Complex event processing
*
Distributed data store
*
Distributed transaction processing
*
Infinispan
*
Oracle Coherence
*
Ehcache
*
Couchbase Server
*
Apache Ignite
*
Redis
Redis (; Remote Dictionary Server) is an in-memory key–value database, used as a distributed cache and message broker, with optional durability. Because it holds all data in memory and because of its design, Redis offers low- latency reads ...
References
External links
*
* {{Github, hazelcast/hazelcast
Transaction processing
Storage software
Free software programmed in Java (programming language)
Software using the Apache license