Raft playground

Five Raft nodes. Break them any way you like.

A key-value store written in C++ from the consensus layer up. Kill the leader, kill every node, then check whether any data went missing.

See the numbers

Cluster

term –
Click a node to select it
Whole cluster

Pause freezes the process (SIGSTOP), like a network partition or a long GC pause. When it resumes, the old leader learns it has been replaced.

Replicated logs

Each cell is one log entry. Filled means committed. Colour is the term it was written in.

Key-value store

    What just happened

      What changed, in numbers

      The project I started from had no working persistence and waited for the next heartbeat before replicating every write. Same machine, same 3-node setup, median of 3 runs.

      Measured with a C++ client against 3 nodes with fsync on, Docker on an Apple-silicon Mac. "Same settings" snapshots on almost every write, as the original did; "tuned" uses a 1 MB snapshot threshold.

      What is running here