Displaying 1 to 20 from 21 results

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.

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.

awesome-consensus - Awesome list for Paxos and friends


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

PaxosStore - Distributed Database initially inspired by Google MegaStore

  •    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 four 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).

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.

distributed-consensus-reading-list - List of academic papers on distributed consensus


This markdown file contains a list of academic papers (and other works) in the field of distributed consensus. Many of the papers listed below fit into more than one section. However, for simplicity, each paper is listed only in the most relevant section. Where possible, open access links for each paper have been provided. Contributions are welcome. This section lists theoretical results relating to distributed consensus.

conflux - Distributed, predictable state container

  •    Javascript

Conflux is Redux for distributed systems.Distributed systems are hard. Conflux is an attempt at making distributed systems understandable. It aims to do what Redux did for Flux, and what Raft did for Paxos.

gaggle - A Raft implementation that focuses on ease of use

  •    Javascript

Gaggle is a Raft implementation that focuses on ease of use.Anything that can be serialized and deserialized as JSON is valid message data. If callback is not provided, a Promise will be returned.

cruise - A node implementation of raft

  •    Javascript

Cruise is a node implementation of the Raft consensus algorithm. It's primary use is to coordinate groups of machines within a distributed system. Cruise ensures that nodes will hold a consistent view of the cluster's replicated log. Raft is similar to Paxos, but with the goal of being simpler to implement and understand. For a more complete description, it's worth checking out the original paper by Diego Ongaro and Jon Ousterhout.

cruise-db - A reference k/v store based upon cruise

  •    Javascript

A reference k/v store based upon cruise. It's the javascript analog to goraft/raftd. You can query keys from the followers and they should stay in sync with any new keys posted to the leader.

paxos - Golang implentation of paxos consensus algorithm

  •    Go

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 github.com/RichardKnop/paxos/paxos and extend Acceptor, Proposer and Learner structs.

caspaxos - CASPaxos: Replicated State Machines without logs

  •    TeX

CASPaxos is a wait-free, linearizable, multi-writer multi-reader register in unreliable, asynchronous networks supporting arbitrary update operations including compare-and-set (CAS). The register acts as a replicated state machine providing an interface for changing its value by applying an arbitrary user-provided function (a command). Unlike Multi-Paxos and Raft which replicate the log of commands, CASPaxos replicates state, thus avoiding associated complexity, reducing write amplification, increasing concurrency of disk operations and hardware utilization. The paper describes CASPaxos, proves its safety properties and evaluates the characteristics of a CASPaxos-based prototype of key-value storage.

epaxos - A pluggable implementation of the Egalitarian Paxos Consensus Protocol

  •    Go

Paxos is a protocol for solving consensus through state machine replication in an asynchronous environment with unreliable processes. It can tolerate up to F concurrent replica failures with 2F+1 total replicas. This consensus protocol is then extended with a stable leader optimization to a replication protocol (commonly referred to as Multi-Paxos) to assign global, persistent, total order to a sequence of client updates. The protocol works by having multiple replicas work in parallel to maintain the same state. This state is updated on each request from a client by each replica, allowing it to be automatically replicated and preserved even in the case of failures. The basic algorithm was famously described by Leslie Lamport in his 1998 paper, The Part-Time Parliament. It was later clarified in his follow-up paper from 2001, Paxos Made Simple. It does so by breaking the global command slot space into subspaces, each owned by a single replica. Replicas then attach ordering constraints to each command while voting on them to allow for proper ordering during command execution. For more intuition on how this works, check out the presentation given at SOSP '13, and for a full technical report and proof of correctness of the protocol, check out A Proof of Correctness for Egalitarian Paxos.

awesome-raft - Raft is gaining popularity in distributed systems as a simple and powerful consensus algorithm


A curated resources of raft consensus algorithm and its friends. Beside Raft, there are some other consensus algorithms that are frequently discussed.

kshaka - Kshaka is a Go implementation of the CASPaxos consensus protocol.

  •    Go

Kshaka is a Go implementation of the CASPaxos consensus protocol. It's name is derived from the Kenyan hip hop group, Kalamashaka. This is work in progress, do not use it anywhere you would regret. API will change over time.

MyPaxos - My multi-paxos service implement :-)

  •    Java

My multi-paxos service implement :-)

distributed-system - Creative and educational project for distributed system

  •    Go

The fantastic experiment for education on distributed system, including the ubiquitous communication over the Web, classic techniques for scaling and efficient storage and a popular application case, aims to incredibly capture the essences of the difficult but useful distributed system theory, such as the two-phase protocol and the paxos consensus protocol. It covers the common technique issues almost in all the distributed systems, including communication, data consistency, parallism, concurrence, replication. The techniques take attentions on the performance, fault-tolerance, scaling and user-friendliness, which are important metrics for distributed systems. Every package has its unit test for functions and performance. (TODO) The final system will be tested in a container-style way.

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.