Both in the libraries and on the internet plenty of resources are available regarding the Distributed Systems topic. All of them are just a better explanation of the same exact source of truth, i.e. academic papers published by the brightest minds in the world. This book is just an ordered collection of all those publications. The primary order of the chapters is based on the citations dependency in the publications, secondary order is based on the year of publication and finally the last criteria is based on the topic dependency. There are three editions of the book: Essential, Virtuoso and Maestro. The Essential Edition contains the historical and most important publications that are at the core of our current distributed systems. The Virtuoso Edition contains the essential edition papers and some recent distributed systems that are built with the technology provided in the essential papers. Finally, the Maestro Edition is a massive collection of the most relevant papers regarding the topic in the academic world.
- Time, Clocks, and the Ordering of Events in a Distributed System
- Distributed Snapshots: Determining Global States of Distributed Systems
- Impossibility of Distributed Consensus with One Faulty Process
- The Byzantine Generals Problem
- Practical Byzantine Fault Tolerance
- The Part-Time Parliament
- Paxos Made Simple
- Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web
- Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web
- Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
- Bigtable: A Distributed Storage System for Structured Data
- Dynamo: Amazon’s Highly Available Key-value Store
- The Chubby lock service for loosely-coupled distributed systems
- The Google File System
- MapReduce: Simplified Data Processing on Large Clusters
- Cassandra - A Decentralized Structured Storage System
- Paxos Made Live - An Engineering Perspective
- Spanner: Google’s Globally-Distributed Database
- Spanner, TrueTime and the CAP Theorem
- ZooKeeper: Wait-free coordination for Internet-scale systems
- Kafka: a Distributed Messaging System for Log Processing
- A simple totally ordered broadcast protocol
- In Search of an Understandable Consensus Algorithm
- Bitcoin: A Peer-to-Peer Electronic Cash System
- Ethereum: a secure decentralized generalized transaction ledger
- Tor: The Second-Generation Onion Router
- Time, Clocks, and the Ordering of Events in a Distributed System
- Distributed Snapshots: Determining Global States of Distributed Systems
- The Byzantine Generals Problem
- The Part-Time Parliament
- Paxos Made Simple
- Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web
- Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web
- MapReduce: Simplified Data Processing on Large Clusters
- Paxos Made Live - An Engineering Perspective
- Bitcoin: A Peer-to-Peer Electronic Cash System
- Time, Clocks, and the Ordering of Events in a Distributed System
- Distributed Snapshots: Determining Global States of Distributed Systems
- Impossibility of Distributed Consensus with One Faulty Process
- The Byzantine Generals Problem
- The Part-Time Parliament
- Paxos Made Simple
- Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web
- Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
- Bigtable: A Distributed Storage System for Structured Data
- Dynamo: Amazon’s Highly Available Key-value Store
- The Chubby lock service for loosely-coupled distributed systems
- The Google File System
- MapReduce: Simplified Data Processing on Large Clusters
- Cassandra - A Decentralized Structured Storage System
- Paxos Made Live - An Engineering Perspective
- Spanner: Google’s Globally-Distributed Database
- Spanner, TrueTime and the CAP Theorem
- ZooKeeper: Wait-free coordination for Internet-scale systems
- Kafka: a Distributed Messaging System for Log Processing
- A simple totally ordered broadcast protocol
- In Search of an Understandable Consensus Algorithm
- Bitcoin: A Peer-to-Peer Electronic Cash System
- Ethereum: a secure decentralized generalized transaction ledger
- Time, Clocks, and the Ordering of Events in a Distributed System
- Distributed Snapshots: Determining Global States of Distributed Systems
- Impossibility of Distributed Consensus with One Faulty Process
- The Byzantine Generals Problem
- Practical Byzantine Fault Tolerance
- The Part-Time Parliament
- Paxos Made Simple
- Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web
- Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web
- Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
- Bigtable: A Distributed Storage System for Structured Data
- Dynamo: Amazon’s Highly Available Key-value Store
- The Chubby lock service for loosely-coupled distributed systems
- The Google File System
- MapReduce: Simplified Data Processing on Large Clusters
- Cassandra - A Decentralized Structured Storage System
- Paxos Made Live - An Engineering Perspective
- Spanner: Google’s Globally-Distributed Database
- Spanner, TrueTime and the CAP Theorem
- ZooKeeper: Wait-free coordination for Internet-scale systems
- Kafka: a Distributed Messaging System for Log Processing
- A simple totally ordered broadcast protocol
- In Search of an Understandable Consensus Algorithm
- Bitcoin: A Peer-to-Peer Electronic Cash System
- Ethereum: a secure decentralized generalized transaction ledger
- Tor: The Second-Generation Onion Router
Graphviz
LaTeX
- Build the dependency image:
dot -Tpng dependency.dot -o img/dependency.png
- Build the book files:
pdflatex distributed-systems-essential.tex
pdflatex distributed-systems-virtuoso.tex
pdflatex distributed-systems-maestro.tex