paxos - Golang implentation of paxos consensus algorithm

  •        26

Golang implentation of Paxos consensus algorithm. This project is still under development. I have tried to keep the algorithm implementation completely decoupled so you can just import from and extend Acceptor, Proposer and Learner structs.



Related Projects


  •    Go

EPaxos is an efficient, leaderless replication protocol. The name stands for Egalitarian Paxos -- EPaxos is based on the Paxos consensus algorithm. As such, it can tolerate up to F concurrent replica failures with 2F+1 total replicas. To function effectively as a replication protocol, Paxos has to rely on a stable leader replica (this optimization is known as Multi-Paxos). The leader can become a bottleneck for performance: it has to handle more messages than the other replicas, and remote clients have to contact the leader, thus experiencing higher latency. Other Paxos variants either also rely on a stable leader, or have a pre-established scheme that allows different replicas to take turns in proposing commands (such as Mencius). This latter scheme suffers from tight coupling of the performance of the system from that of every replica -- i.e., the system runs at the speed of the slowest replica.

pg_paxos - Basic implementation of Paxos and Paxos-based table replication for a cluster of PostgreSQL nodes

  •    C

This PostgreSQL extension provides a basic implementation of the Paxos algorithm in PL/pgSQL and basic table replication through Paxos. Warning: pg_paxos is in an early stage, consider it experimental.

paxi - Paxos protocol framework

  •    Go

Paxi is the framework that implements WPaxos and other Paxos protocol variants. Paxi provides most of the elements that any Paxos implementation or replication protocol needs, including network communication, state machine of a key-value store, client API and multiple types of quorum systems. Warning: Paxi project is still under heavy development, with more features and protocols to include. Paxi API may change too.

libpaxos - General purpose Paxos library

  •    Erlang

A collection of implementations of the Paxos and FastPaxos algorithms for solving consensus in a network of unreliable processors. Visit for more informations

awesome-consensus - Awesome list for Paxos and friends


A curated selection of artisanal consensus algorithms and hand-crafted distributed lock services.

phxpaxos - C++ Paxos library that has been used in Wechat production environment.

  •    C++

PhxPaxos is a state-synchronization lib based on Paxos protocol, it is totally designed by Wechat independently. It can help your services in synchronizing the state from a single node to the other nodes to form a multi-copy cluster and handling fail-over automatically by calling functions in our lib. This lib has been used in Wechat production environment, we have also tested it in a large number of harsh environments to guarantee a stable consistency.

phxqueue - A high-availability, high-throughput and highly reliable distributed queue based on the Paxos algorithm

  •    C++

PhxQueue is a high-availability, high-throughput and highly reliable distributed queue based on the Paxos protocol. It guarantees At-Least-Once Delivery. It is widely used in WeChat for WeChat Pay, WeChat Media Platform, and many other important businesses.



Implement a simple paxos protocol

awesome-distributed-systems - A curated list to learn about distributed systems


A (hopefully) curated list on awesome material on distributed systems, inspired by other awesome frameworks like awesome-python. Most links will tend to be readings on architecture itself rather than code itself. Read things here before you start.

paxosstore - PaxosStore has been deployed in WeChat production for more than two years, providing storage services for the core businesses of WeChat backend

  •    C++

PaxosStore is a distributed-database initially inspired by Google MegaStore. It's the second generation of storage system developed to support current WeChat sevice and applications. PaxosStore has been deployed in WeChat production for more than two years, providing storage services for the core businesses of WeChat backend including user account management, user relationship management (i.e., contacts), instant messaging, social networking (i.e., Moments), and online payment (i.e., WeChat Pay). Now PaxosStore is running on thousands of machines, and is able to afford billions of peak TPS.

phxsql - A high availability MySQL cluster that guarantees data consistency between a master and slaves

  •    C++

PhxSQL is a high-availability and strong-consistency MySQL cluster built on Paxos and Percona. Projects on which this project depends are also published by Tencent( phxpaxos, phxrpc, libco ). You can download or clone them with --recurse-submodule.

dragonboat - A feature complete and high performance multi-group Raft library in Go.

  •    Go

Dragonboat is a high performance multi-group Raft consensus library in Go with C++11 binding support. Consensus algorithms such as Raft provides fault-tolerance by alllowing a system continue to operate as long as the majority member servers are available. For example, a Raft cluster of 5 servers can make progress even if 2 servers fail. It also appears to clients as a single node with strong data consistency always provided. All running servers can be used to initiate read requests for aggregated read throughput.