# async-raft/async-raft

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/async-raft-async-raft).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

1,093 stars · 85 forks · Rust · Apache-2.0

## Links

- GitHub: https://github.com/async-raft/async-raft
- Homepage: https://async-raft.github.io/async-raft
- awesome-repositories: https://awesome-repositories.com/repository/async-raft-async-raft.md

## Topics

`async` `consensus` `raft` `rust` `tokio`

## Description

Async-raft is an asynchronous consensus framework built on Rust for coordinating replicated state machines across distributed nodes. The library implements a leader-based consensus algorithm to ensure data consistency and fault tolerance, managing inter-node communication, log replication, and automated snapshot creation. 

The framework supports dynamic cluster topology modifications at runtime, allowing nodes to be added or removed without downtime through intermediate configuration phases. It handles log replication through batched and pipelined streaming with congestion control, alongside streaming chunked snapshots to synchronize lagging followers and reduce storage overhead.

Consensus logic is decoupled from persistence and networking layers using pluggable storage traits for log and state machine management. Additional operational utilities include cluster bootstrapping, read validation for client requests, internal metric streaming, and lifecycle management for graceful node shutdowns.

## Tags

### Networking & Communication

- [Distributed Consensus Algorithms](https://awesome-repositories.com/f/networking-communication/distributed-consensus-algorithms.md) — Coordinates state machines across multiple nodes using a leader-based consensus algorithm to ensure consistency. ([source](https://async-raft.github.io/async-raft))
- [Raft Consensus Implementations](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-systems-coordination/distributed-consensus-protocols/raft-consensus-implementations.md) — Implements the Raft distributed consensus protocol to coordinate state machines and replicate logs.
- [Inter-Node Consensus Communication](https://awesome-repositories.com/f/networking-communication/inter-node-consensus-communication.md) — Exchanges messages between cluster nodes to replicate logs, run elections, and distribute snapshots. ([source](https://async-raft.github.io/async-raft/raft.html))
- [Client Request Management](https://awesome-repositories.com/f/networking-communication/client-request-management.md) — Processes client requests by submitting mutating operations or validating cluster leaders before read execution. ([source](https://async-raft.github.io/async-raft/raft.html))

### Data & Databases

- [Consensus Engines](https://awesome-repositories.com/f/data-databases/consensus-engines.md) — Provides an asynchronous consensus framework built on Rust and Tokio for replicated state machines.
- [Consensus State Backends](https://awesome-repositories.com/f/data-databases/consensus-state-backends.md) — Saves consensus state, logs, and state machine data to persistent disk storage using pluggable backends. ([source](https://async-raft.github.io/async-raft/storage.html))
- [Pipeline Batching](https://awesome-repositories.com/f/data-databases/batch-data-operations/pipeline-batching.md) — Groups multiple log entries and streams them concurrently with congestion control to maximize network throughput.
- [Dynamic Cluster Membership Management](https://awesome-repositories.com/f/data-databases/dynamic-cluster-membership-management.md) — Alters cluster topology dynamically at runtime by adding or removing nodes without downtime. ([source](https://async-raft.github.io/async-raft/raft.html))
- [Snapshot-Based Compactions](https://awesome-repositories.com/f/data-databases/log-processing-engines/log-compaction/snapshot-based-compactions.md) — Reduces log storage overhead by serializing state machine views and streaming chunked archives to lagging followers.

### DevOps & Infrastructure

- [Joint Consensus Protocols](https://awesome-repositories.com/f/devops-infrastructure/cluster-membership-protocols/joint-consensus-protocols.md) — Enables safe runtime cluster topology modifications through intermediate joint configuration phases.
- [Consensus Log Replication](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clusters/log-replication-strategies/consensus-log-replication.md) — Pipelines and batches log replication between nodes with congestion control to keep followers up-to-date. ([source](https://github.com/async-raft/async-raft#readme))

### Software Engineering & Architecture

- [Task-Based Concurrency Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/task-based-concurrency-frameworks.md) — Handles concurrent peer communications, heartbeats, and client requests using cooperative multi-threading.
- [Trait-Based Service Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/trait-based-service-abstractions.md) — Decouples consensus logic from persistent backends by defining pluggable traits for log and state storage.

### System Administration & Monitoring

- [Asynchronous Event Loops](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/networking/connection-lifecycle-management/parallel-network-i-o/event-driven-i-o/asynchronous-event-loops.md) — Drives consensus state transitions asynchronously through non-blocking event loops and state machine handlers.
