4 ms·
A Raft implementation in Haskell
- platz 8y agoDoes anyone actually use raft these days
- jeremyjh 8y agoIs 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 8y agoAh, I didn't know Paxos was on the decline or that etcd uses raft
- espadrine 8y agoI 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 8y agoAs 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 8y agoThank 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.
- rubiquity 8y ago> Paxos is on the decline You really need to back up a claim like that with facts.
- bjt 8y agoThe Citus team recently created a Postgres extension implementing Paxos. https://www.citusdata.com/blog/2016/04/13/masterless-distributed-queue/ https://www.citusdata.com/blog/2016/04/13/masterless-distrib...
- shanev 8y agoThere’s Tendermint: https://tendermint.com/ https://tendermint.com/, which is gaining popularity in distributed systems projects. It’s Byzantine fault tolerant, unlike Raft and Paxos.
- KirinDave 8y agoI had to get drunk after reading this. No, Tendermint is not useful where Raft is. This is such a crass category error it makes me wonder what your actual skillset is.
- shanev 8y agoCare to enlighten us without resorting to a personal attack Dave?
- notduncansmith 8y agoRaft is not designed for adversarial use; while it is fault-tolerant, it is not Byzantine fault tolerant. Raft (or Paxos et al) are better suited for wholly-owned distributed databases, where a BFT consensus algorithm like Tendermint would usually be inappropriate because of the overhead of cryptographic operations. If you think a large number of your nodes might get hacked, though, you may want a blockchain anyways :)
- KirinDave 8y agoAfter you name a system that decided to switch from a Raft-based consensus implementation to Tendermint, sure.
- nine_k 8y agoA great README file, explaining things in detail, from the ground up. Kudos.
- mark_l_watson 8y agoAgreed, 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.
- v2bridge 8y agowith comfort and get your job done systematically without a bridge of security alert. It's frustrating not getting the value of your money on services paid for. If you are in need of safe exploit in hacking, make the right decision of using v2cyberhacks and keep tab on any subjects be it spouse, employees and friends information from social media, Phones, websites and erasing of certain confidential records you don't want to be at public domain, V2cyberhacks don't brag about hack exploit it is what we do best .....mail us today at gmail v2cyberhacks We Treat Every Request With Utmost Confidentiality
- toolslive 8y agoThere are others: https://github.com/NicolasT/kontiki https://github.com/NicolasT/kontiki
- kccqzy 8y agoThere 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