Distributed key-value store atop an implementation of the Raft Consensus Algorithm - a distributed consensus protocol for managing replicated state macines over unreliable networks. This implementation implements an basic design for log truncations, replications, snapshots, leader elections and more. It is designed to be a fault tolerant and performant alternative to the Paxos Consensus Algorithm. It is tolerant to network partitions and node failures. Written primarily in Go, it uses protocol buffers with gRPC for the underlying RPC subsystem.
Purely experimental project. Designed for learning purposes not production use. Based on research paper Diego Ongaro et. al. Also inspired heavily by CoreOS's implementation: coreos/etcd/raft. Improve functionality at will.
Bug reports and pull requests are welcome on GitHub at @ridwanmsharif
Ridwan M. Sharif: E-mail, @ridwanmsharif
The Library is available as open source under the terms of the MIT License