
A Raft implementation in Haskell - lambdaxdotx
https://github.com/adjoint-io/raft
======
kccqzy
There is an older Haskell implementation of Raft with additional changes for
Byzantine failures: [https://github.com/kadena-
io/juno](https://github.com/kadena-io/juno)

------
nine_k
A great README file, explaining things in detail, from the ground up.

Kudos.

~~~
mark_l_watson
Agreed, very nice docs, both for how it works and examples, and also for using
the code.

For Haskell fans, you might also like tha Pact DLT contract language,
implemented in Haskell with, Lisp syntax.

------
toolslive
There are others:
[https://github.com/NicolasT/kontiki](https://github.com/NicolasT/kontiki)

------
platz
Does anyone actually use raft these days

~~~
jeremyjh
Is there another distributed consensus algorithm that you think is more
prominent? Paxos is on the decline. AFAIK Raft underlies most new distributed
systems. Kubernetes for example relies on etcd which is a Raft implementation.

~~~
platz
Ah, I didn't know Paxos was on the decline or that etcd uses raft

~~~
espadrine
I wouldn't call Paxos on the decline. It has several nice properties that Raft
lacks[1]. However, implementing it correctly is more brutal than Raft, which
is cut into easier-to-understand components.

Also, the paper introducing Paxos[2] is famously obfuscated, while the Raft
website[3] trivializes the problem, and has ready-to-use libraries.

As a result, there are more recently-developed systems in Raft than Paxos, but
I expect there is more volume hitting Paxos systems than Raft ones in the
world.

[1]: [http://rystsov.info/2017/02/15/simple-
consensus.html](http://rystsov.info/2017/02/15/simple-consensus.html)

[2]: [https://lamport.azurewebsites.net/pubs/lamport-
paxos.pdf](https://lamport.azurewebsites.net/pubs/lamport-paxos.pdf)

[3]: [https://raft.github.io/](https://raft.github.io/)

~~~
evanweaver
As a member of a team that has implemented Raft in production
([https://fauna.com](https://fauna.com)) and in conversation with others who
have, the general consensus is that Raft, Paxos, and even Viewstamped
Replication are variants of the same fundamental algorithm.

There is an interesting paper about the commonalities in consensus here:
[https://arxiv.org/pdf/1309.5671.pdf](https://arxiv.org/pdf/1309.5671.pdf)

~~~
suj1th
Thank you for sharing an interesting paper. The similarity between Raft and
Viewstamped Replication is easy to gauge. The original Raft paper too
acknowledges this similarity. OTOH, the similarity between Paxos and Raft is
not very apparent (to me). The paper in the link seems to predate Raft, and
only considers VR, Zab and multi-Paxos.

