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.