This repository contains my implementation of Raft. It follows the spec detailed in the paper, with an improved log synchronization algorithm.
File structure:
raft.go
: main implementationrpc.go
: RPC signatures (AppendEntries, RequestVote)state.go
: state enum (Leader, Follower, Candidate) and state transition functionspersister.go
,simrpc.go
,util.go
boilerplate provided by MIT - thank you!
For any questions, please file an issue or email the author at jonathan [at] garelick [dot] net
.