---
title: Distributed Systems
description: Distributed systems consist of independent computers that coordinate to achieve a common goal. Learners will understand network communication, consensus algorithms, data replication, and how to design scalable, fault-tolerant systems that handle high volumes of traffic.
category: programming-tech
subcategory: operating-systems
difficulty: beginner, intermediate, advanced
url: /subject/distributed-systems
---

# Distributed Systems

Distributed systems consist of independent computers that coordinate to achieve a common goal. Learners will understand network communication, consensus algorithms, data replication, and how to design scalable, fault-tolerant systems that handle high volumes of traffic.

## Where to start

Start with Mikito Takada's Distributed Systems for Fun and Profit, a short free online text on system models, consistency, time and replication, from two-phase commit to Paxos and CRDTs. If you only use one resource, make it Distributed Systems (MIT 6.5840) by Frans Kaashoek and Robert Morris, a free graduate course whose Go labs build MapReduce, Raft consensus and a sharded key-value store.

## Available Resources

2 Books • 6 Courses • 2 Websites

## Websites

### 1. 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.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://book.mixu.net/distsys/

**Tags:** distributed-systems, cap-theorem, consistency-models, replication, consensus

### 2. 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.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://highscalability.com

**Tags:** websites, technology-computer-science, operating-systems

## Courses

### 1. 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.

**Difficulty:** Intermediate | **Price:** Free

**Link:** https://www.coursera.org/learn/cloud-computing

**Tags:** cloud-computing, distributed-algorithms, mapreduce, nosql, key-value-stores

### 2. Distributed Systems

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

**Difficulty:** Intermediate | **Price:** Free

**Link:** https://www.youtube.com/playlist?list=PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB

### 3. Distributed Systems (MIT 6.5840)

**Author:** Frans Kaashoek, Robert Morris

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.

**Difficulty:** Advanced | **Price:** Free

**Link:** https://pdos.csail.mit.edu/6.824/

**Tags:** distributed-systems, raft, consensus, replication, fault-tolerance, sharding

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

**Author:** Jerome H. Saltzer, M. Frans Kaashoek

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.

**Difficulty:** Intermediate | **Price:** Free

**Link:** https://ocw.mit.edu/courses/res-6-004-principles-of-computer-system-design-an-introduction-spring-2009/

**Tags:** computer-systems, system-design, fault-tolerance, atomicity, networking, computer-security

### 5. Distributed Database Systems

A Coursera course from Johns Hopkins University covering the principles of distributed database systems, including data distribution, replication, consistency models, and transaction processing across networked database nodes.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://www.coursera.org/learn/foundations-of-distributed-database-systems

**Tags:** courses, technology-computer-science, database

### 6. Advanced Distributed Systems

Distributed systems are the backbone of modern society but entail challenges in areas such as complexity and energy-use. Discover distributed systems from first principles, understand the architectures and techniques derived from them and explore examples of current practical use.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://www.edx.org/learn/computer-science/delft-university-of-technology-modern-distributed-systems

**Tags:** courses, technology-computer-science, operating-systems

## Books

### 1. Distributed Systems: Concepts and Design

**Author:** George Coulouris, Jean Dollimore, Tim Kindberg

Third-edition university textbook covering interprocess communication, remote invocation, naming, time and global state, coordination, replication, transactions, distributed file systems and security. Used widely as a course text; readers finish able to reason about system-level design trade-offs.

**Difficulty:** Intermediate | **Language:** English | **Price:** Paid

**Link:** https://www.amazon.com/dp/0201619180?tag=edmonddante07-20

**Tags:** books, technology-computer-science, operating-systems

### 2. Distributed Systems: Principles and Paradigms

**Author:** Andrew S. Tanenbaum, Maarten van Steen

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.

**Difficulty:** Intermediate | **Language:** English | **Price:** Paid

**Link:** https://www.amazon.com/dp/0130888931?tag=edmonddante07-20

**Tags:** distributed-systems, replication, fault-tolerance, consistency-models, middleware

---

*This content is part of Dantes.io - Your Treasure Map to Knowledge*

*Curated by humans at Dantes.io. Personal study use welcome; republishing this curation requires permission (team@dantes.io).*

View this page online: https://dantes.io/subject/distributed-systems