A basic implementation of Paxos for reaching consensus with an arbitrary number of Proposers/Acceptors/Learners.
Paxos is known for being hard to implement. It depends. The basic idea
from
Lamport's paper
can be expressed quite elegantly with an Actor based implementation. We use
Akka
here. In a production system, the challenge is to scale Paxos, e.g. by avoiding
the repeated leader election phase in the prepare phase.
gradle build
- builds and runs tests