Distributed consensus using Raft, Node, and fuzz testing

13th July 2016 in London at CodeNode

There are 85 other SkillsCasts available from FullStack 2016 - the conference on JavaScript, Node & Internet of Things

Please log in to watch this conference skillscast.

581621689 640

Servers in distributed systems need to agree with each other on their state. You could use the Raft Consensus Algorithm to build reliable distributed systems. Google does! This talk covers how Raft works, how to implement a synchronous algorithm in asynchronous Node without blocking the event loop and how to use fuzz testing to increase confidence in the implementation.

Mark is exploring the construction of distributed systems in Node.js with a set of reliable, non-prescriptive building blocks. The goal is to make it easier to build systems that fit your needs without having to maintain separate infrastructure.

As a first step Mark is writing Buoyant, a framework for implementing servers using the Raft Consensus Algorithm. It's designed to be a reliable Raft implementation without requiring a particular network protocol or storage mechanism.

You will discover why Raft is important and, and Mark will offer a basic explanation of how it works. You will also learn how Buoyant orchestrates its actions to avoid interleaving (this, though counter-intuitive, is necessary as Raft assumes synchronous behavior). Finally Mark will cover how fuzz testing is used to increase confidence in the implementation.


Distributed consensus using Raft, Node, and fuzz testing

Mark Wubben

Humanist & technologist who loves working with the web.