Raft Consensus Protocol

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • little-raft

    The lightest distributed consensus library. Run your own replicated state machine! ❤️

  • tigerbeetle

    Discontinued A distributed financial accounting database designed for mission critical safety and performance. [Moved to: https://github.com/tigerbeetledb/tigerbeetle] (by coilhq)

    If you avoid multithreading in your consensus protocol, this also means that your implementation becomes more deterministic. If you can have it fully deterministic by stubbing out the message passing and storage, then you can do deterministic simulation fuzzing like we do in TigerBeetle, which is a high velocity testing technique for finding/reproducing/fixing interesting (and rare) bugs: https://github.com/coilhq/tigerbeetle#simulation-tests

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • raft

    Golang implementation of the Raft consensus protocol

    In general Hashicorp's repos are high quality:

    https://github.com/hashicorp/raft

    Example application: https://github.com/Jille/raft-grpc-example

  • raft-grpc-example

    Example code for how to get hashicorp/raft running with gRPC

    In general Hashicorp's repos are high quality:

    https://github.com/hashicorp/raft

    Example application: https://github.com/Jille/raft-grpc-example

  • ruaft

    Raft implemented in Rust

    In my implementation, in each AppendEntries request, the leader includes X commits starting from nextIndex. The follower either accepts all X commits, or reject all of them. If the follower accepted all commits, the leader moves nextIndex to (X + nextIndex when the request was sent). See code here (matchIndex = nextIndex + X - 1): https://github.com/ditsing/ruaft/blob/master/src/sync_log_en....

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts