This is my own implementation of RAFT consensus protocol.
There are two versions i implemented one is based on the log files (original algorithm) -- raft_persistent.go
Other is modified without logs but works only on strong codition of majority being alive at any given point -- raft_volatile.go
There is one presentation file attached for further details.
Also There are this links to watch the demo.