There are a lot of Paxos implementations in the wild but it’s hard to gauge what the quality and reliability of these are. It seems the goal with RAFT was to design an alternative that was easier to describe and in turn easier to understand and implement.
This is an implementation of the RAFT protocol in Go.
For anybody who has ever tried to implement it, Paxos is by no means a simple protocol, even though it is based on relatively simple invariants. This paper provides imperative pseudo-code for the full Paxos (or Multi-Paxos) protocol without shying away from discussing various implementation details. The initial description avoids optimizations that complicate comprehension. Next we discuss liveness, and list various optimizations that make the protocol practical.