<story><title>Raft: Understandable Distributed Consensus (2014)</title><url>https://thesecretlivesofdata.com/raft/</url></story><parent_chain></parent_chain><comment><author>_russross</author><text>I am in the minority who thinks Raft is overrated.&lt;p&gt;I tried teaching Raft one year instead of Paxos but ended up switching back. While it was much easier to understand how to implement Raft, I think my students gained deeper insight when focusing on single-decision Paxos. There is a lightbulb moment when they first understand that consensus is a property of the system that happens first (and they can point at the moment it happens) and then the nodes discover that it has been achieved later. Exploring various failure modes and coming to understand how Paxos is robust against them seems to work better in this setting as well.&lt;p&gt;I think this paper by Heidi Howard and Richard Mortier is a great way to move on to Multipaxos:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;arxiv.org&amp;#x2F;abs&amp;#x2F;2004.05074&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;arxiv.org&amp;#x2F;abs&amp;#x2F;2004.05074&lt;/a&gt;&lt;p&gt;They present Multipaxos in a similar style to how Raft is laid out and show that Multipaxos as it is commonly implemented and Raft are almost the same protocol.&lt;p&gt;Raft was a great contribution to the engineering community to make implementing consensus more approachable, but in the end I don&amp;#x27;t think the protocol itself is actually more understandable. It was presented better for implementers, but the implementation focus obscures some of the deep insights that plain Paxos exposes.</text></comment>
<story><title>Raft: Understandable Distributed Consensus (2014)</title><url>https://thesecretlivesofdata.com/raft/</url></story><parent_chain></parent_chain><comment><author>benbjohnson</author><text>Author here. I&amp;#x27;m happy to answer any questions although this project was from 10+ years ago so I could be a little rusty.&lt;p&gt;Over the years I&amp;#x27;ve been trying to find better ways to do this kind of visualization but for other CS topics. Moving to video is the most realistic option but using something like After Effects takes A LOT of time and energy for long-form visualizations. It also doesn&amp;#x27;t produce a readable output file format that could be shared, diff&amp;#x27;d, &amp;amp; tweaked.&lt;p&gt;I spent some time on a project recently to build out an SVG-based video generation tool that can use a sidecar file for defining animations. It&amp;#x27;s still a work in progress but hopefully I can get it to a place where making this style of visualizations isn&amp;#x27;t so time intensive.</text></comment>