1. Introduction -- Pt. I. Fundamentals -- 2. Basic Algorithms in Message-Passing Systems -- 3. Leader Election in Rings -- 4. Mutual Exclusion in Shared Memory -- 5. Fault-Tolerant Consensus -- 6. Causality and Time -- Pt. II. Simulations -- 7. A Formal Model for Simulations -- 8. Broadcast and Multicast -- 9. Distributed Shared Memory -- 10. Fault-Tolerant Simulations of Read/Write Objects -- 11. Simulating Synchrony -- 12. Improving the Fault Tolerance of Algorithms -- 13. Fault-Tolerant Clock Synchronization -- Pt. III. Advanced Topics -- 14. Randomization -- 15. Wait-Free Simulations of Arbitrary Objects -- 16. Problems Solvable in Asynchronous Systems -- 17. Solving Consensus in Eventually Stable Systems