What is Akka Cluster?

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 :
  1. 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.
  2. Location Transparency:

    • Nodes can send messages to actors without knowing the actor's physical location, whether local or remote.
  3. Resilience:

    • If a node fails, Akka Cluster can redistribute tasks and maintain functionality using fault-tolerant techniques.
  4. Dynamic Membership:

    • Nodes can join or leave the cluster dynamically without disrupting the entire system.
  5. Cluster Sharding:

    • Distributes entities (actors) across the cluster automatically, providing load balancing and scalability.
  6. Cluster Singleton:

    • Ensures only a single instance of a specific actor runs in the cluster, even if nodes fail or restart.
  7. Failure Detection:

    • Uses a gossip protocol and heartbeat messages to monitor node health and detect failures.