Skip to main content
BookintermediatePaid

Distributed Systems: Principles and Paradigms

by Andrew S. Tanenbaum, Maarten van Steen · Prentice Hall

A textbook on the principles of distributed systems, covering communication, processes, naming, synchronization, consistency and replication, fault tolerance, and security, with case studies such as distributed file systems and the web. Readers learn the core design trade-offs behind reliable, scalable networked systems.

Visit resource

This link may earn us a small commission at no extra cost to you. Affiliate disclosure

Also charted under:Distributed Databases

More resources on Distributed Systems

WebsiteFree

highscalability.com

High Scalability is a tech blog offering in-depth articles and real-world case studies on building scalable distributed systems, with content on architecture patterns, performance tuning, scalability challenges, and deployment strategies.

WebsiteFree

Distributed Systems for Fun and Profit

Mikito Takada's short online text covers system models, the CAP and FLP impossibility results, consistency models, time and vector clocks, and replication from two-phase commit through Paxos, Dynamo and CRDTs, with pointers to the underlying papers.

CourseFree

Cloud Computing (Distributed Systems focus)

Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies – all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing. Some of these concepts include: clouds, MapReduce, key-value/NoSQL stores, classical distributed algorithms, widely-used distributed algorithms, scalability, trending areas, and much, much more! Know how these systems work from the inside out. Get your hands dirty using these concepts with provided homework exercises. In the programming assignments, implement some of these concepts in template code (programs) provided in the C++ programming language. Prior experience with C++ is required. The course also features interviews with leading researchers and managers, from both industry and academia.

CourseFree

Distributed Systems

Learn distributed databases with Martin Kleppmann's course. Explore key concepts and build scalable systems!

CourseFree

Distributed Systems (MIT 6.5840)

The graduate course formerly numbered 6.824: fault tolerance, replication and consistency, taught through research-paper case studies. Lecture notes, past exams with solutions, and Go labs on MapReduce, Raft consensus and a sharded key-value store teach learners to build reliable distributed systems.

CourseFree

Principles of Computer System Design: An Introduction (MIT RES.6-033)

Part II (chapters 7 to 11) of the textbook that grew from 6.033 Computer System Engineering, covering networks, fault tolerance, atomicity, consistency and security. Provides the open chapters with problem sets, giving learners the principles behind reliable, secure computer systems.

See all Distributed Systems resources →