Expand description

Raft is a distributed consensus algorithm widely used nowadays to build distributed applications like etcd. However, while it is even understandable than notorious Paxos algorithm it is still difficult to implement correct and efficient implementation.

This library is a Raft implementation based on Tonic, a gRPC library based on Tokio. By exploiting gRPC features like streaming, the inter-node log replication and snapshot copying is very efficient.

Modules

Available message types for interaction with the cluster.

gatewaygateway

Gateway to interact with the cluster.

simplesimple

Simplified RaftApp trait.

The snapshot abstraction and some basic implementations.

The abstraction for the backing storage and some implementations.

Structs

Configuration.

Builder for Config.

The URI component of a request.

Enums

Error type for ConfigBuilder

Plan to make a new snapshot.

Traits

The abstraction for user-defined application runs on the RaftCore.

Functions

Make a RaftService.

Type Definitions

Log index.

A Raft implementation of tower::Service.