Implementing the Raft distributed consensus protocol in Go