{"id":13448925,"url":"https://github.com/dgryski/awesome-consensus","last_synced_at":"2025-09-28T19:31:24.712Z","repository":{"id":44724983,"uuid":"123978045","full_name":"dgryski/awesome-consensus","owner":"dgryski","description":"Awesome list for Paxos and friends","archived":false,"fork":false,"pushed_at":"2021-05-21T13:27:19.000Z","size":33,"stargazers_count":2011,"open_issues_count":1,"forks_count":203,"subscribers_count":97,"default_branch":"master","last_synced_at":"2024-05-19T00:00:30.793Z","etag":null,"topics":["awesome","consensus-algorithm","paxos","raft"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dgryski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-05T20:58:37.000Z","updated_at":"2024-05-16T16:59:52.000Z","dependencies_parsed_at":"2022-08-12T11:21:39.044Z","dependency_job_id":null,"html_url":"https://github.com/dgryski/awesome-consensus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgryski%2Fawesome-consensus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgryski%2Fawesome-consensus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgryski%2Fawesome-consensus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgryski%2Fawesome-consensus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dgryski","download_url":"https://codeload.github.com/dgryski/awesome-consensus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234555757,"owners_count":18851836,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome","consensus-algorithm","paxos","raft"],"created_at":"2024-07-31T06:00:24.774Z","updated_at":"2025-09-28T19:31:19.667Z","avatar_url":"https://github.com/dgryski.png","language":null,"funding_links":["https://www.buymeacoffee.com/dgryski"],"categories":["Others","References","Other Lists","Meta Lists","Misc","DevOps \u0026 SRE","Other Awesome Lists"],"sub_categories":["Zab","TeX Lists","Verification of Distributed Systems","Peer-to-Peer"],"readme":"[![Buy Me A Coffee](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/dgryski)\n\n# Awesome Consensus\n\nA curated selection of artisanal consensus algorithms and hand-crafted distributed lock services.\n\n## Paxos - Algorithm\n\n* [Part-time Parliament](https://research.microsoft.com/en-us/um/people/lamport/pubs/lamport-paxos.pdf)\n* [Paxos made Simple](http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf)\n* [Paxos made Practical](http://read.seas.harvard.edu/~kohler/class/08w-dsi/mazieres07paxos.pdf)\n* [Wikipedia: Paxos](https://en.wikipedia.org/wiki/Paxos_(computer_science))\n* [Paxos lecture (Raft user study)](https://www.youtube.com/watch?v=JEpsBg0AO6o)\n* [The Paxos Algorithm (Google Tech Talk by Luis Quesada Torres)](https://www.youtube.com/watch?v=d7nAGI_NZPk)\n* [[Dr. TLA+ Series] Paxos - Andrew Helwer](https://www.youtube.com/watch?v=zCaJSrTmUFA)\n* [Paxos Agreement - Computerphile](https://www.youtube.com/watch?v=s8JqcZtvnsM)\n* [Paxos Simplified by Chris Colohan](https://www.youtube.com/watch?v=SRsK-ZXTeZ0)\n* [Neat Algorithms: Paxos Visualized](http://harry.me/blog/2014/12/27/neat-algorithms-paxos/)\n* [Model Checking Paxos in Spin](https://arxiv.org/abs/1408.5962)\n* [Paxos Consensus, Deconstructed and Abstracted (Extended Version)](https://arxiv.org/abs/1802.05969)\n\n## Paxos - Engineering\n\n* [Lessons Learned from Implementing Paxos](http://blog.willportnoy.com/2012/06/lessons-learned-from-paxos.html)\n* [Tencent/phxpaxos](https://github.com/Tencent/phxpaxos)\n* [Practical Experience Report: The Performance of Paxos in the Cloud](https://arxiv.org/abs/1404.6719)\n* [Paxos for System Builders](http://www.cnds.jhu.edu/pub/papers/cnds-2008-2.pdf)\n* [Using Paxos to Build a Scalable, Consistent, and Highly Available Datastore](https://arxiv.org/abs/1103.2408)\n* [Paxos made Moderately Complex](http://www.cs.cornell.edu/courses/cs7412/2011sp/paxos.pdf), [website](http://paxos.systems/)\n* [Paxos made Live](http://research.google.com/pubs/pub33002.html)\n* [Paxos made code: Implementing a high throughput Atomic Broadcast](http://www.inf.usi.ch/faculty/pedone/MScThesis/marco.pdf), [libpaxos](https://bitbucket.org/sciascid/libpaxos)\n* [500 lines or less: Clustering by Consensus](http://www.aosabook.org/en/500L/clustering-by-consensus.html)\n* [ScalienDB: Designing and Implementing a Distributed Database using Paxos](https://arxiv.org/abs/1302.3860)\n* [Seamless Paxos Coordinators](https://arxiv.org/abs/1710.07845)\n* [IronFleet: Proving Practical Distributed Systems Correct](https://www.microsoft.com/en-us/research/publication/ironfleet-proving-practical-distributed-systems-correct/)\n* [Low-Overhead Paxos Replication](https://link.springer.com/article/10.1007/s41019-017-0039-z)\n\n## Zookeeper\n\n* [Zab: A Simple Totally Ordered Broadcast Protocol](https://www.datadoghq.com/pdf/zab.totally-ordered-broadcast-protocol.2008.pdf)\n* [ZooKeeper: Wait-free coordination for Internet-scale systems](http://static.usenix.org/event/usenix10/tech/full_papers/Hunt.pdf)\n\n## Raft\n\n* [The Raft Consensus Algorithm](https://raft.github.io/)\n* [Raft: In Search of an Understandable Consensus Algorithm](https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf)\n* [Raft lecture (Raft user study)](https://www.youtube.com/watch?v=JEpsBg0AO6o)\n* [ARC: Analysis of Raft Consensus](https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-857.pdf)\n* [Raft Refloated: Do We Have Consensus?](https://www.cl.cam.ac.uk/~ms705/pub/papers/2015-osr-raft.pdf)\n* [Raft Understandable Distributed Consensus Visualization](http://thesecretlivesofdata.com/raft/)\n* [Ark: A Real-World Consensus Implementation](https://arxiv.org/abs/1407.4765)\n* [Understanding performance aspects of etcd and Raft - Hitoshi Mitake, NTT Laboratories](https://www.youtube.com/watch?v=snG3kSdGTrA)\n* [Raft does not Guarantee Liveness in the face of Network Faults](https://decentralizedthoughts.github.io/2020-12-12-raft-liveness-full-omission/)\n\n## Raft - Engineering\n\n* [braft](https://github.com/baidu/braft)\n* [sofa-jraft](https://github.com/sofastack/sofa-jraft)\n* [dragonboat](https://github.com/lni/dragonboat)\n\n## Chubby\n\n* [The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby.html)\n* [Papers We Love](https://www.youtube.com/watch?v=kX9Z0F-eTt4) \n\n## Viewstamped Replication\n\n* [Viewstamped Replication: A New Primary Copy Method to Support Highly-Available Distributed Systems](http://www.cs.princeton.edu/courses/archive/fall09/cos518/papers/viewstamped.pdf) Liskov '88\n* [Viewstamped Replication Revisited](http://pmg.csail.mit.edu/papers/vr-revisited.pdf)\n* [From Viewstamped Replication to Byzantine Fault Tolerance](http://www.pmg.csail.mit.edu/papers/vr-to-bft.pdf)\n\n## CASPaxos\n\n* [CASPaxos: Replicated State Machines without logs](https://arxiv.org/abs/1802.07000)\n* [Paxos on Steroids and a Crash Course in TLA+](http://tbg.github.io/single-decree-paxos-tla-compare-and-swap)\n* [A TLA+ specification for Gryadka](https://medium.com/@grogepodge/tla-specification-for-gryadka-c80cd625944e)\n\n## Fast Paxos\n\n* [Fast Paxos](https://www.microsoft.com/en-us/research/publication/fast-paxos/)\n* [Dr. TLA+ Series - Fast Paxos](https://www.youtube.com/watch?v=eW6Zv0X53T4)\n* [The Performance of Paxos and Fast Paxos](https://arxiv.org/abs/1308.1358)\n* [On the Coordinator's Rule for Fast Paxos](https://arxiv.org/abs/1710.08047)\n\n## AllConcur\n\n* [AllConcur: Leaderless Concurrent Atomic Broadcast (Extended Version)](https://arxiv.org/abs/1608.05866)\n* [Formal Specification and Safety Proof of a Leaderless Concurrent Atomic Broadcast Algorithm](https://arxiv.org/abs/1708.04863)\n\n## Multi-Paxos\n\n* [Formal Verification of Multi-Paxos for Distributed Consensus](https://arxiv.org/abs/1606.01387)\n* [Multi-Paxos: An Implementation and Evaluation](https://www.cs.washington.edu/tr/2009/09/UW-CSE-09-09-02.PDF)\n* [Moderately Complex Paxos Made Simple: High-Level Specification of Distributed Algorithm](https://arxiv.org/abs/1704.00082)\n\n## Other Paxos Variants\n\n* [There is more consensus in egalitarian parliaments (paper)](https://www.cs.cmu.edu/~dga/papers/epaxos-sosp2013.pdf), [video](https://www.youtube.com/watch?v=KxoWlUZNKn8), [efficient/epaxos](https://github.com/efficient/epaxos)\n* [Flexible Paxos: Quorum intersection revisited](https://fpaxos.github.io/), [Dr TLA+ talk](https://www.youtube.com/watch?v=LX-WK8EmoFE)\n* [Designing Distributed Systems Using Approximate Synchrony in Data Center Networks](https://syslab.cs.washington.edu/papers/specpaxos-nsdi15.pdf), [UWSysLab/specpaxos](https://github.com/UWSysLab/specpaxos)\n* [WPaxos: Ruling the Archipelago with Fast Consensus](https://www.cse.buffalo.edu//tech-reports/2017-03.pdf)\n* [Paxos Quorum Leases: Fast Reads Without Sacrificing Writes](http://www.pdl.cmu.edu/PDL-FTP/associated/moraru-socc14.pdf)\n* [Self-Stabilizing Paxos](https://arxiv.org/abs/1305.4263)\n* [Generalized Paxos Made Byzantine (and Less Complex)](https://arxiv.org/abs/1708.07575)\n* [PaxosLease: Diskless Paxos for Leases](https://arxiv.org/abs/1209.4187)\n\n## Stellar\n* [The Stellar Consensus Protocol: A Federated Model for Internet-level Consensus](https://www.stellar.org/papers/stellar-consensus-protocol.pdf)\n* [Understanding the Stellar Consensus Protocol](https://medium.com/interstellar/understanding-the-stellar-consensus-protocol-423409aad32e)\n\n## Distributed Consensus\n\n* [Heidi Howard - Distributed Consensus: Making Impossible Possible](https://www.youtube.com/watch?v=gYkueS5sKqo)\n* [Can’t we all just agree?](https://blog.acolyer.org/2015/03/01/cant-we-all-just-agree/) -- 10 part blog series on distributed consensus algorithms\n* [Consensus in the Cloud: Paxos Systems Demystified](https://www.cse.buffalo.edu/tech-reports/2016-02.pdf)\n* [On Ways to Agree: DistSys Vocabulary](https://medium.com/databasss/on-ways-to-agree-part-1-links-and-flp-impossibility-f6bd8a6a0980)\n* [On Ways to Agree: Path to Atomic Broadcast](https://medium.com/databasss/on-ways-to-agree-part-2-path-to-atomic-broadcast-662cc86a4e5f)\n* [A Generalised Solution to Distributed Consensus](https://arxiv.org/abs/1902.06776), [morning paper summary](https://blog.acolyer.org/2019/03/08/a-generalised-solution-to-distributed-consensus/)\n* [Paxosmon: Gotta Consensus Them All: A detailed summary of many different Paxos variants](https://vadosware.io/post/paxosmon-gotta-concensus-them-all/)\n* [Consensus in Presensus of Partial Synchrony](https://groups.csail.mit.edu/tds/papers/Lynch/jacm88.pdf)\n* [The latest gossip on BFT consensus](https://arxiv.org/abs/1807.04938)\n\n## Other\n\n* [Time, Clocks and the Ordering of Events in a Distributed System](http://lamport.azurewebsites.net/pubs/time-clocks.pdf)\n* [A brief history of Consensus, 2PC and Transaction Commit](https://betathoughts.blogspot.com/2007/06/brief-history-of-consensus-2pc-and.html)\n* [Paxos Protocol Framework](https://github.com/ailidani/paxi)\n* [Byzantine Generals](https://research.microsoft.com/en-us/um/people/lamport/pubs/byz.pdf)\n* [Practical Byzantine Fault Tolerance](http://pmg.csail.mit.edu/papers/osdi99.pdf)\n* [Just say NO to Paxos Overhead: Replacing Consensus with Network Ordering](https://www.usenix.org/system/files/conference/osdi16/osdi16-li.pdf)\n* [Impossibility of Distributed Consensus with One Faulty Process - FLP](https://groups.csail.mit.edu/tds/papers/Lynch/jacm85.pdf)\n* [Practical Byzantine Fault Tolerance and Proactive Recovery](http://www.pmg.csail.mit.edu/papers/bft-tocs.pdf)\n* [Vive La Difference: Paxos vs. Viewstamped Replication vs. Zab](https://www.cs.cornell.edu/fbs/publications/viveLaDifference.pdf)\n* [Aleph: A Leaderless, Asynchronous, Byzantine Fault Tolerant Consensus Protocol](https://arxiv.org/abs/1810.05256)\n* [Flexible Byzantine Fault-Tolerance](https://arxiv.org/abs/1904.10067)\n* [Delegated Byzantine Fault Tolerance](https://raw.githubusercontent.com/NeoResearch/yellowpaper/master/releases/08_dBFT.pdf)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgryski%2Fawesome-consensus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdgryski%2Fawesome-consensus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgryski%2Fawesome-consensus/lists"}