Distributed Systems
Goal
This document contains a list of resources related to distributed systems.
Introduction Resources
- An introduction to distributed systems
- Fallacies of distributed computing
- Readings in distributed systems
- Notes of Distributed Systems for Young Bloods
- Cloud Design Patterns
- Reading List for Distributed Systems, by Swami Sivasubramanian
- What are the seminal papers in distributed systems? Why?, QUORA
Clock synchronization and events ordering
- Cristian's Algorithm
- NTP
- Time, Clocks and the Ordering of Events by Leslie Lamport
- Vector Clock Wiki Page
CAP Theorem
Snapshot Algorithms
Consensus Protocols
- The Part Time Parliament (Paxos)
- Paxos Simple
- Paxos Made Live - An Engineering Perspective
- In Search of an Understandable Consensus Algorithm (Raft)
- Raft, Understandable Distributed Consensus
- The Raft Consensus Algorithm
Multicast
- Scalable Reliable Multicast, SRM
- Reliable Multicast Transport Protocol, RMTP
- Gossip Protocol
- The promise, and limitations, of gossip protocols
- Gossip causing AWS outage
- Virtual Synchrony
Membership & Failure Detection Protocols
- Byzantine fault tolerance
- Unreliable Failure Detectors for Reliable Distributed Systems, Chandra & Toueg
- A Gossip-Style Failure Detection Service, Renessse, Minsky & Hayden
- The SWIM Membership Protocol
Distributed Locking Algorithms
Distributed Hash Tables
- Distributed hash table on Wikipedia
- Chord Original Paper
- Patry Original Paper
- Kelips Original Paper
- DynamoDB Original Paper