Akka Cluster is a module in the Akka toolkit that allows you to build fault-tolerant, distributed systems by connecting multiple nodes (or instances) into a cluster. It enables nodes to communicate seamlessly with each other, providing resilience, scalability, and support for location transparency.
Key Features of Akka Cluster :
-
Distributed Systems Support:
- Akka Cluster enables an application to run across multiple machines or instances, where each node participates as a part of the cluster.
-
Location Transparency:
- Nodes can send messages to actors without knowing the actor's physical location, whether local or remote.
-
Resilience:
- If a node fails, Akka Cluster can redistribute tasks and maintain functionality using fault-tolerant techniques.
-
Dynamic Membership:
- Nodes can join or leave the cluster dynamically without disrupting the entire system.
-
Cluster Sharding:
- Distributes entities (actors) across the cluster automatically, providing load balancing and scalability.
-
Cluster Singleton:
- Ensures only a single instance of a specific actor runs in the cluster, even if nodes fail or restart.
-
Failure Detection:
- Uses a gossip protocol and heartbeat messages to monitor node health and detect failures.