Go to file
Ben Johnson fd6090216a Add test for demotion in request vote. 2013-04-29 20:42:58 -06:00
.gitignore Initial commit 2013-04-11 07:33:27 -07:00
README.md Add link to Diego's paper. 2013-04-16 20:28:38 -06:00
TODO Add Log.SetCommitIndex(). 2013-04-15 22:19:29 -06:00
append_entries.go Add election timer. 2013-04-28 15:23:21 -06:00
command.go Add log commit info. 2013-04-28 16:36:46 -06:00
election_timer.go Add election timer. 2013-04-28 15:23:21 -06:00
election_timer_test.go Add election timer. 2013-04-28 15:23:21 -06:00
join_command.go Add log commit info. 2013-04-28 16:36:46 -06:00
log.go Add log commit info. 2013-04-28 16:36:46 -06:00
log_entry.go Add election timer. 2013-04-28 15:23:21 -06:00
log_test.go Add log commit info. 2013-04-28 16:36:46 -06:00
peer.go Add election timer. 2013-04-28 15:23:21 -06:00
request_vote.go Add election timer. 2013-04-28 15:23:21 -06:00
server.go Add simple voting test. 2013-04-28 16:49:52 -06:00
server_test.go Add test for demotion in request vote. 2013-04-29 20:42:58 -06:00
test.go Add log commit info. 2013-04-28 16:36:46 -06:00
util.go Log deserialization. 2013-04-15 20:47:59 -06:00

README.md

go-raft

Overview

This is an Go implementation of the Raft distributed consensus protocol. Raft is a protocol by which a cluster of nodes can maintain a replicated state machine. The state machine is kept in sync through the use of a replicated log.

For more details on Raft, you can read In Search of an Understandable Consensus Algorithm by Diego Ongaro and John Ousterhout.