Further Reading

Resources for deepening your understanding of distributed systems.

Books

TitleAuthorFocus
Designing Data-Intensive ApplicationsMartin KleppmannModern database and distributed system design
Distributed Systems: Principles and ParadigmsTanenbaum & van SteenAcademic foundations
Introduction to Reliable Distributed ProgrammingCachin, Guerraoui, RodriguesFormal foundations

Papers

Foundational

  • Brewer, E. A. (2000). "Towards robust distributed systems"
  • Gilbert, S. & Lynch, N. (2002). "Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services"
  • Fischer, M. J., Lynch, N. A., & Paterson, M. S. (1985). "Impossibility of distributed consensus with one faulty process"

Consensus

  • Ongaro, D. & Ousterhout, J. (2014). "In Search of an Understandable Consensus Algorithm (Raft)"
  • Lamport, L. (2001). "Paxos Made Simple"

Online Resources

Video Lectures

  • MIT 6.824: Distributed Systems
  • Stanford CS247: Advanced Distributed Systems

Practice

  • Build your own distributed system from scratch
  • Contribute to open-source distributed databases
  • Participate in distributed systems hackathons