By Andrii Rodionov
Implementing Raft protocol with project Loom
We are living in an age of distributed systems. And one of the most challenging problems there is the consensus problem.
Raft is a consensus protocol that is used in many systems like etcd and Kubernetes, Consul, Kafka, Hazelcast etc. This protocol is based on asynchronous communication between nodes in a cluster (with leader election, log replication, tolerating node failures, timeouts etc.), so we need some useful mechanisms and language features to effectively implement protocol behaviour.
During the talk, we will briefly discuss the basics of the Raft protocol, and then in code, we will see how parts of it can be implemented using the promising Loom project.