awesome-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.
Bootcamp
Read things here before you start.
- CAP Theorem, Also plain english explanation
- Fallacies of Distributed Computing, expect things to break, everything
- 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 blog post to follow along
Books
- Distributed Systems for fun and profit [Free]
- Distributed Systems Principles and Paradigms, Andrew Tanenbaum [Amazon Link]
- Scalable Web Architecture and Distributed Systems [Free]
- Principles of Distributed Systems [ETH Zurich University]
Papers
Must read papers on distributed systems. While nearly all of Lamport's work should feature here, just adding a few that must be read.
- Times, Clocks and Ordering of Events in Distributed Systems Lamport's paper, the Quintessential distributed systems primer
- The Part Time Parliament Paxos
Storage & Databases
- Dynamo: Amazon's Highly Available Key Value Store
- Bigtable: A Distributed Storage System for Structured Data
- The Google File System
- Cassandra: A Decentralized Structured Storage System Inspired heavily by Dynamo
- CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data, Basis of Ceph distributed storage system
Distributed Consensus
- The Chubby Lock Service for loosely coupled distributed systems Inspiration behind other Service Discovery & Coordination ZK, etcd, Consul etc.
- Paxos made live - An engineering perspective Google's learning while implementing systems atop of Paxos
- Raft Consensus Algorithm Do checkout an interesting visualization of raft
Courses
- Cloud Computing Concepts, University of Illinois
- CMU: Distributed Systems in Go Programming Language
- Software Defined Networking , Georgia Tech.
- ETH Zurich: Distributed Systems
Blogs and other reading links
- Notes on Distributed Systems for Young Bloods
- High Scalability Several architectures of huge internet services, for eg twitter, whatsapp
- There is No Now, Problems with simultaneity in distributed systems
- aphyr, Posts on jepsen series are pretty awesome
- All Things Distributed - Wernel Vogel's (Amazon CTO) blog on distributed systems
- Distributed Systems: Take Responsibility for Failover
- The C10K problem
- On Designing and Deploying Internet-Scale Services
Meta Lists
Other lists like this one
- Readings in distributed systems
- Distributed Systems meta list
- List of required readings for Distributed Systems Part of CMU's Engineering Distributed Systems course
- The Distributed Reader
- A Distributed Systems Reading List
- Distributed Systems Readings