awesome-distributed-systems
by theanalyst
A curated list to learn about distributed systems
AI summary
Distributed system knowledge base
A curated list of resources on distributed systems
- stars
- 10.8K
- forks
- 1.5K
- watching
- 424
- awesome list
- 1
- entries
- 85
What's in the list
85 links in 14 sections, with live GitHub stats.activeno commit in 2y
Bootcamp
- CAP Theorem
, Also explanation
- Fallacies of Distributed Computing
, expect things to break,
- Distributed systems theory for the distributed engineer
, most of the papers/books in the blog might reappear in this list again. Still a good BFS approach to distributed systems
- FLP Impossibility Result (paper)
, an easier to follow along
An Introduction to Distributed Systems
@aphyr's excellent introduction to distributed systems
Books
- Distributed Systems Principles and Paradigms, Andrew Tanenbaum
[Free with registration]
- Principles of Distributed Systems
[Free] [ETH Zurich University]
- Making reliable distributed systems in the presence of software errors
, [Free] Joe Amstrong's (Author of Erlang) PhD thesis
- Designing Data Intensive Applications
[Amazon Link]
Distributed Machine Learning Patterns, Yuan Tang
, Practical patterns for scaling machine learning from your laptop to a distributed cluster
- Distributed Algorithms, Nancy Lynch
[Amazon Link]
- Designing Distributed Systems, Brendan Burns
[Free with registration]
- Think Distributed Systems
[Free with subscription]
Papers
- Times, Clocks and Ordering of Events in Distributed Systems
Lamport's paper, the Quintessential distributed systems primer
- Session Guarantees for Weakly Consistent Replicated Data
a '94 paper that talks about various recommendations for session guarantees for eventually consistent systems, many of this would be standard vocabulary in reading other dist. sys papers, like monotonic reads, read your writes etc
Papers / Storage & Databases
- Dynamo: Amazon's Highly Available Key Value Store
Paraphrasing @fogus from their , it is very rare for a paper describing an active production system to influence the state of active research in any industry; this is one of those seminal distributed systems paper that solves the problem of a highly available and fault tolerant database in an elegant way, later paving the way for systems like Cassandra, and many other AP systems using a consistent hashing
- Cassandra: A Decentralized Structured Storage System
Inspired heavily by Dynamo, an now an open source
- CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data
, the algorithm for the basis of Ceph distributed storage system, for the architecture itself read
Papers / Messaging systems
- The Log: What every software engineer should know about real-time data's unifying abstraction
, a somewhat long read, but covers brilliantly on logs, which are at the heart of most distributed systems
Papers / Distributed Consensus and Fault-Tolerance
- The Part Time Parliament
Paxos, Lamport's original Paxos paper, a bit difficult to understand, may require multiple passes
- Paxos Made Simple
, a more terse readable Paxos paper by Lamport himself. Shorter and more easier compared to the original
- The Chubby Lock Service for loosely coupled distributed systems
Google's lock service used for loosely coupled distributed systems. Sort of Paxos as a Service for building other distributed systems. Primary inspiration behind other Service Discovery & Coordination tools like Zookeeper, etcd, Consul etc
- Paxos made live - An engineering perspective
Google's learning while implementing systems atop of Paxos. Demonstrates various practical issues encountered while implementing a theoretical concept
- Raft Consensus Algorithm
An alternative to Paxos for distributed consensus, that is much simpler to understand. Do checkout an
- Conflict-free Replicated Data Types
presents an approach for Strong Eventual Consistency which as been applied in projects such as , and . A great talk on the subject by Martin Kleppmann can be found
Azos.Sky.Server.Locking
Speculative algorithms for global state synchronizations uses probability based QOS (Quality of Service)/Trust measure to ensure probability-based consensus. The approach avoids distributed state machine/phase synchronization and is very simple to understand and implement
Papers / Testing, monitoring and tracing
- Dapper
, Google's large scale distributed-systems tracing infrastructure, this was also the basis for the design of open source projects such as , , and
Papers / Programming Models
Papers / Verification of Distributed Systems
- testing distributed systems
Curated list of resources on includes links to materials on testing by various companies (Google, Amazon, Netflix, Microsoft, Dropbox, etc) and research papers
Jepsen
A framework for distributed systems verification, with fault injection @aphyr has featured enough times in this list already, but Jepsen and the blog posts that go with are a quintessntial addition to any distributed systems reading list
- Verdi
A Framework for Implementing and Formally Verifying Distributed Systems
Videos
- Distributed Deep Dive
interview series by
- Distributed Systems in One Lesson
Distributed Systems in One Lesson by Tim Berglund
Courses
- Reliable Distributed Algorithms, Part 1
, KTH Sweden
- Reliable Distributed Algorithms, Part 2
, KTH Sweden
- Cloud Computing Concepts
, University of Illinois
- CMU: Distributed Systems
in Go Programming Language
- Software Defined Networking
, Georgia Tech
- ETH Zurich: Distributed Systems Part 2
, covers Distributed control algorithms, communication models, fault-tolerance among other things. In particular fault tolerance issues (models, consensus, agreement) and replication issues (2PC,3PC, Paxos), which are critical in understanding distributed systems are explained in great detail
- Distributed Systems Course
, A beginner course on distributed system by Chris Colohan, A google employee who contributed to SUIF, MapReduce, TCMalloc, Percolator, Caffeine, Borg, Omega, and Piper
- MIT 6.824
, MIT distributed system lectures, in each video they discuss papers like GFS, Zookeeper, RAFT, Spanner
- Distributed Systems
, Lectures 9 to 16 of the Cambridge University lecture "Concurrent and Distributed Systems", given by Dr. Martin Kleppmann. . A computer science entrance course, covered basic models and algorithms in distributed systems, also discussed CRDT, collaboration software and google's spanner
Blogs and other reading links
- Amazon Builder's Library
, a collection of Amazon's learnings on distributed systems
- High Scalability
Several architectures of huge internet services, for eg ,
- There is No Now
, Problems with simultaneity in distributed systems
- Turing Lecture: The Computer Science of Concurrency: The Early Years
, An article by Leslie Lamport on concurrency
- The Paper Trail
blog, a very readable blog covering various aspects of distributed systems
- aphyr
, Posts on series are pretty awesome
- All Things Distributed
Wernel Vogel's (Amazon CTO) blog on distributed systems
- Files are hard
A blog post on filesystem consistency, pretty important to read if you are into distributed storage or databases
- Distributed Systems Testing: The Lost World
Testing distributed systems are hard enough, a well researched blog post which again covers a lot of links to various approaches and other papers
- SWIM Protocol explained
A blog post on popular SWIM failure detector
Research
- ACM Symposium on Principles of Distributed Computing (PODC) and International Symposium on Distributed Computing (DISC)
, a list of resources from PODC–DISC community including conference series, mailing lists, youtube, twitter, etc
- IEEE International Parallel & Distributed Processing Symposium (IPDPS)
, an international forum for engineers and scientists to present their latest research findings
- Springer Distributed Computing Journal
, a journal about theory, design, specification, and implementation of distributed systems
Meta Lists
- List of required readings for Distributed Systems
Part of CMU's Engineering Distributed Systems course
- A Distributed Systems Reading List
, A collection of material, mostly papers on Distributed Systems Theory as well as seminal industry papers
- Distributed Systems Readings
, A comprehensive list of online courses related to distributed systems
Awesome Distributed Consensus
, Another list of materials on distributed consensus protocols
- Beginner's Guide to Distributed Systems
A blog post with some useful getting started links for distributed systems
Nothing in this list matches your filter.
Featured in 1 awesome list
Each link jumps to the spot where the list mentions awesome-distributed-systems.