awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
hashicorp avatar

hashicorp/raft

0
View on GitHub↗
9,037 stars·1,074 forks·Go·MPL-2.0·21 views

Raft

This is a Raft consensus library and distributed consensus engine implemented in Go. It provides the primitives necessary to build fault-tolerant distributed services by implementing a replicated state machine that ensures a group of servers agree on a shared system state through leader election and log replication.

The project distinguishes itself through a pluggable architecture for storage backends and snapshot storage, decoupling the consensus logic from physical persistence. It includes specialized mechanisms for leadership transfer, protocol version management to support rolling upgrades, and a dedicated heartbeat processing handler to prevent disk latency from interfering with failure detection.

The library covers a broad range of distributed system capabilities, including quorum-based consensus, automated state checkpointing, and log compaction via snapshots. It also provides comprehensive observability through cluster health monitoring and performance metrics, as well as testing utilities for simulating network partitions and verifying consensus correctness.

Features

  • Consensus Algorithms - Implements the Raft consensus algorithm to ensure a majority of nodes agree on a single system state.
  • Distributed State Synchronization - Synchronizes replicated logs across a cluster of servers to ensure all nodes agree on the system state.
  • Raft Consensus Implementations - Provides a complete Go implementation of the Raft consensus protocol for managing replicated logs and leadership.
  • Consensus Engines - Acts as the core engine managing state replication and consensus for a group of servers.
  • Distributed Commit Logs - Monitors replicated log indexes and notifies when a majority of servers have persisted an entry.
  • Commit Index Tracking - Determines the highest log entry replicated on a quorum of servers to ensure consistent state commitment.
  • Single-Leader Replication - Centralizes log management by designating a single leader node to coordinate all client write operations.
  • Bespoke Distributed System Primitives - Provides low-level coordination primitives in Go for building custom fault-tolerant distributed systems.
  • Distributed Leader Election - Coordinates a distributed leader election process to ensure a single active instance manages the replicated log.
  • Fault Tolerance - Designs distributed services that maintain data consistency and availability during node failures or network partitions.
  • Consensus Log Replication - Sends log entries to a majority of peers and applies them to the state machine for consistency.
  • Replicated Log Management - Synchronizes a log of operations across servers to ensure all nodes agree on the sequence of changes.
  • Consensus Node Roles - Tracks and updates the operational role of nodes using thread-safe operations to maintain cluster status.
  • Server State Synchronization - Synchronizes data across a cluster of servers to ensure all nodes converge on a shared log and state.
  • Consensus and Coordination Systems - Implements core consensus algorithms to maintain a consistent global state across distributed nodes.
  • Consensus Protocols - Routes protocol requests over TCP to ensure state synchronization and propagate changes from leader to followers.
  • Node Failure Detection - Implements failure detection using periodic heartbeats to trigger new leader elections when the current leader fails.
  • Inter-Node Consensus Communication - Facilitates the exchange of voting and log replication requests between peer servers to maintain cluster consensus.
  • Resource State Synchronization - Synchronizes replicated logs across multiple servers using a consensus protocol to ensure global state agreement.
  • Replicated State Machines - Provides a replicated state machine that applies an ordered sequence of operations deterministically across a cluster.
  • Configuration Persistence - Persists key configuration values to stable storage to ensure system safety across restarts.
  • Point-In-Time Snapshots - Writes point-in-time copies of the state and configuration to disk for faster recovery and log truncation.
  • Local Consensus Snapshots - Writes system state snapshots to the local filesystem and manages retained versions to prevent disk exhaustion.
  • Buffer Caches - Stores specific log entries in a fast-access ring buffer to reduce read latency from the primary store.
  • In-Memory Caches - Uses an in-memory ring buffer to cache recently written log entries and reduce disk I/O.
  • Log Truncation - Discards snapshot data during the snapshotting process to truncate the replicated log.
  • Pluggable Storage Drivers - Offers a pluggable architecture to decouple consensus logic from physical storage implementations for logs and snapshots.
  • Snapshot Synchronization - Implements fast synchronization of nodes using state snapshots to bootstrap the cluster state.
  • State Checkpointing - Triggers automatic state snapshots based on time intervals or log size thresholds to enable reliable recovery.
  • Log State Recovery - Provides mechanisms to restore a node's state by replaying committed log entries or loading snapshots.
  • Log Compaction - Includes log compaction to reduce storage by persisting the current state and discarding superseded log entries.
  • Cluster Management - Tracks a list of servers and their voting roles using unique identifiers to prevent configuration conflicts.
  • Leadership Transfers - Orchestrates the movement of the leader role to another peer to facilitate maintenance or controlled failover.
  • Failure Simulation Tools - Injects network partitions and transport errors to verify distributed system recovery from node isolation.
  • Heartbeat Monitors - Implements a dedicated heartbeat handler to maintain cluster liveness without interference from disk latency.
  • Transport Simulation - Creates an in-memory transport layer to test consensus logic and message passing without network connectivity.
  • Node Bootstrapping - Transfers state snapshots to peer nodes to quickly synchronize their logs and state machines.
  • Cluster State Captures - Provides point-in-time snapshots of the state machine to truncate logs and accelerate recovery for lagging nodes.
  • Cluster Bootstrapping Mechanisms - Manages cluster bootstrapping by defining participating peer addresses and initial member configurations.
  • Application Batching - Processes multiple state machine applications in groups to increase overall throughput and performance.
  • Cluster Health Monitoring - Provides interfaces to query leader addresses, peer states, and synchronization indices to monitor cluster health.
  • Cluster Monitoring Systems - Streams real-time cluster events, such as leadership changes and heartbeat failures, to monitoring observers.
  • Consensus Verification - Validates that replicated logs and state machine sequences remain consistent across all nodes after operations.
  • Deterministic State Testing - Uses mock state machines and in-memory configurations to verify log replication and state consistency.
  • Distributed Systems - Implementation of the Raft consensus protocol.
  • Distributed Systems and RPC - Implementation of the Raft consensus protocol for distributed systems.
  • Algorithms - Raft algorithm implementation.
  • Distributed Systems - Raft consensus protocol implementation.

Star history

Star history chart for hashicorp/raftStar history chart for hashicorp/raft

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Raft

Similar open-source projects, ranked by how many features they share with Raft.
  • sofastack/sofa-jraftsofastack avatar

    sofastack/sofa-jraft

    3,806View on GitHub↗

    sofa-jraft is a Java implementation of the Raft consensus algorithm. It serves as a distributed consensus engine and linearizable state machine designed to ensure high availability and data consistency across a cluster of nodes. The project provides a replicated key-value store and a coordination engine for managing distributed state. It distinguishes itself through support for multi-group consensus sharding to distribute traffic and a service provider interface that allows for custom log storage and entry encoding implementations. The system covers a wide range of distributed capabilities,

    Javaconsensusdistributed-consensus-algorithmsjava
    View on GitHub↗3,806
  • wenweihu86/raft-javawenweihu86 avatar

    wenweihu86/raft-java

    1,228View on GitHub↗

    Raft-java is a lightweight Java consensus library and replicated state machine engine designed to synchronize transaction logs and maintain fault-tolerant state across distributed server nodes. The framework relies on a leader-based replication model that routes write operations through a designated coordinator node, executing RPC-driven consensus protocols and automatic leader elections to maintain cluster agreement. The library supports dynamic cluster membership changes, allowing nodes to be added or removed during runtime without downtime through joint consensus configuration entries app

    Javadistributed-file-systemdistributed-storageraft
    View on GitHub↗1,228
  • maemual/raft-zh_cnmaemual avatar

    maemual/raft-zh_cn

    6,287View on GitHub↗

    This project is a Chinese language translation of the original research paper detailing the Raft consensus protocol. It serves as a technical research translation and a consensus protocol guide, making the specifications of the Raft algorithm accessible to Chinese speakers. The documentation covers the core mechanisms of distributed systems, including leader election, log replication, and safety protocols. It provides a detailed explanation of how to maintain a single source of truth across multiple servers to achieve fault-tolerant cluster management. The material addresses distributed stat

    chineseraft
    View on GitHub↗6,287
  • goraft/raftgoraft avatar

    goraft/raft

    2,435View on GitHub↗

    Raft is a Go library implementing the Raft consensus protocol for coordinating reliable state machine replication across a cluster. It functions as a distributed systems library for building applications that require strongly consistent replicated state, keeping distributed nodes synchronized and fault-tolerant through automated node elections and log distribution. The library conducts periodic node elections using majority votes to designate a single data authority and prevent split-brain conflicts, while distributing deterministic command logs from leaders to follower nodes using a multi-ph

    Go
    View on GitHub↗2,435
See all 30 alternatives to Raft→

Frequently asked questions

What does hashicorp/raft do?

This is a Raft consensus library and distributed consensus engine implemented in Go. It provides the primitives necessary to build fault-tolerant distributed services by implementing a replicated state machine that ensures a group of servers agree on a shared system state through leader election and log replication.

What are the main features of hashicorp/raft?

The main features of hashicorp/raft are: Consensus Algorithms, Distributed State Synchronization, Raft Consensus Implementations, Consensus Engines, Distributed Commit Logs, Commit Index Tracking, Single-Leader Replication, Bespoke Distributed System Primitives.

What are some open-source alternatives to hashicorp/raft?

Open-source alternatives to hashicorp/raft include: sofastack/sofa-jraft — sofa-jraft is a Java implementation of the Raft consensus algorithm. It serves as a distributed consensus engine and… wenweihu86/raft-java — Raft-java is a lightweight Java consensus library and replicated state machine engine designed to synchronize… maemual/raft-zh_cn — This project is a Chinese language translation of the original research paper detailing the Raft consensus protocol.… goraft/raft — Raft is a Go library implementing the Raft consensus protocol for coordinating reliable state machine replication… willemt/raft — Raft is a portable C programming library that implements the Raft distributed consensus protocol. It serves as a state… canonical/dqlite — dqlite is a distributed SQL database that embeds a relational database engine to provide replicated storage across a…