an implementation of the Raft algorithm