awesome-distributed-systems
A curated list to learn about distributed systems
https://github.com/theanalyst/awesome-distributed-systems
Last synced: about 1 month ago
JSON representation
Blogs and other reading links
Verification of Distributed Systems
Books
- Distributed Systems Principles and Paradigms, Andrew Tanenbaum
- Designing Data Intensive Applications
- Distributed Algorithms, Nancy Lynch
- Distributed Systems: Concepts and Design, George Coulouris
- Akka in Action, Second Edition
- Systemantics: how systems work and especially how they fail
- Think Distributed Systems
- Distributed Systems for fun and profit
- Distributed Machine Learning Patterns, Yuan Tang
- Distributed Computing, Hagit Attiya and Jennifer Welch
- Impossibility Results for Distributed Computing
- Principles of Distributed Systems
- Designing Distributed Systems, Brendan Burns
Bootcamp
- FLP Impossibility Result (paper) - paper-trail.org/blog/a-brief-tour-of-flp-impossibility/) to follow along
- An Introduction to Distributed Systems
Courses
Verification of Distributed Systems
- Reliable Distributed Algorithms, Part 1
- Reliable Distributed Algorithms, Part 2
- Cloud Computing Concepts
- Distributed Systems - playlist](https://www.youtube.com/playlist?list=PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB). A computer science entrance course, covered basic models and algorithms in distributed systems, also discussed CRDT, collaboration software and google's spanner.
- MIT 6.824 - playlist](https://www.youtube.com/playlist?list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB) MIT distributed system lectures, in each video they discuss papers like GFS, Zookeeper, RAFT, Spanner...
- CMU: Distributed Systems
- Distributed Systems Course
- ETH Zurich: Distributed Systems
Meta Lists
Verification of Distributed Systems
Papers
Distributed Consensus and Fault-Tolerance
- Impossibility of Distributed Consensus with One Faulty Process
- The Chubby Lock Service for loosely coupled distributed systems
- Paxos made live - An engineering perspective
- Raft Consensus Algorithm
- Conflict-free Replicated Data Types - kv/), Redis and Akka. A great talk on the subject by Martin Kleppmann can be found here
- Azos.Sky.Server.Locking - based consensus. The approach avoids distributed state machine/phase synchronization and is very simple to understand and implement
- Practical Byzantine Fault Tolerance
- The Byzantine Generals Problem
- Paxos Made Simple
- The Part Time Parliament
Messaging systems
Programming Models
- Distributed Programming Model
- PSync: a partially synchronous language for fault-tolerant distributed algorithms
Storage & Databases
- Dynamo: Amazon's Highly Available Key Value Store
- Bigtable: A Distributed Storage System for Structured Data
- Cassandra: A Decentralized Structured Storage System
- blog
- The Google File System
- CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data - rados-pdsw07.pdf)
Testing, monitoring and tracing
- Dapper - systems tracing infrastructure, this was also the basis for the design of open source projects such as Zipkin, Apache SkyWalking, Pinpoint and HTrace.