“Akka Cluster provides a fault-tolerant decentralized peer-to-peer based cluster membership service with no single point of failure or single point of bottleneck. It does this using gossip protocols and an automatic failure detector.”
That is what it says as Akka Cluster’s introduction on akka.io. But the question from the layman “What it means to me?” is still unanswered. Akka Cluster provides what is called a simple abstraction to write distributed application that have a requirement of multiple slave/worker nodes connecting together to make a network of nodes (may be for storage or compute). It provides built in support for cluster membership i.e. when a node goes out or a new member joins or when a node crashes and also tracks the cpu and memory usage. To achieve this it does heart beat tracking which is what they call an “automatic failure detector” and propagates state via gossip which is a peer to peer protocol instead of a typical master-slave communication.
All of this is as of now is replicated across different distributed computing framework with each one simply re-implementing the whole thing in their own complicated way. Lets hope with library like akka-cluster we can have more slick and smarter distributed systems. Just for an instance it took me a few hundred lines of code to implement a distributed resource manager *like* Yarn on akka cluster.