System Design Space
Knowledge graphSettings

Updated: February 21, 2026 at 11:59 PM

Distributed Systems: Principles and Paradigms (short summary)

expert

Detailed analysis

Code of Architecture

Detailed analysis of the first chapter from Alexander and the Code of Architecture club

Read the analysis

Distributed Systems (4th Edition)

Authors: Andrew S. Tanenbaum, Maarten van Steen
Publisher: distributed-systems.net, 2023
Length: ~1000 pages

The seminal work of Tanenbaum and van Steen: architectures, coordination, consistency, fault tolerance and security.

Distributed Systems (4th Edition) - original coverOriginal
Distributed Systems (4th Edition) - translated editionTranslated

Chapter 1: Introduction

Definition of a distributed system

"A collection of autonomous computing elements that appears to the user as a single coherent system"

Transparency

Hiding distribution complexity from the user

Openness

Standard interfaces and protocols

Scalability

Growth without productivity degradation

8 types of transparency

Access
Hiding how a resource is accessed
Location
Hiding physical location
Migration
Hiding resource movement
Relocation
Hiding movement while working
Replication
Hiding the existence of copies
Competitiveness
Hiding sharing
Refusal
Hiding failures and recovery
Persistence
Hiding data storage

Detailed analysis

Code of Architecture

Detailed analysis of the second chapter from Alexander and the Code of Architecture club

Read the analysis

Chapter 2: Architectures

Architectural styles

Layered
Vertical organization of components
Object-based
Distributed objects with RMI
SOA / Microservices
Service-oriented architecture
Publish-Subscribe
Event-driven model

System organizations

Centralized
Client-server model
Decentralized (P2P)
Peer nodes without center
Hybrid
Combination of approaches (CDN, BitTorrent)

Role of Middleware

Middleware is an intermediate layer between the OS and applications that ensures system coherence. Examples: CORBA, RMI, Message Brokers, Web Services. Middleware hides platform heterogeneity and provides a single API.

Detailed analysis

Code of Architecture

Detailed analysis of the third chapter from Alexander and the Code of Architecture club

Read the analysis

Chapter 3: Processes

Threads

  • User-level vs Kernel-level threads
  • Multi-threaded servers
  • Thread pools
  • reactor/proactor model

Virtualization

  • Virtual machines
  • Containers
  • Resource Isolation
  • Process migration

Clients and servers

  • Stateless vs Stateful servers
  • Server clustering
  • Code migration
  • Mobile agents

Detailed analysis

Code of Architecture

Detailed analysis of the fourth chapter from Alexander and the Code of Architecture club

Read the analysis

Chapter 4: Communications

RPC (Remote Procedure Call)

Synchronous remote procedure calls with local call semantics

Call semantics
at-least-once, at-most-once, exactly-once
Stubs
Client and server proxies for marshalling

Message Queues

Asynchronous communication via message brokers

AMQPRabbitMQKafkaWebSphere MQ

Multicast

Delivering messages to a group of recipients

IP Multicast
Network level, best-effort
Application-level Multicast
Overlay networks, delivery guarantees

Gossip protocols

Epidemic information dissemination: Each node periodically broadcasts updates to random neighbors. They guarantee eventual consistency with high probability with minimal coordination.

Detailed analysis

Code of Architecture

Detailed analysis of the chapter on coordination from Alexander and the Code of Architecture club

Read the analysis

Chapter 5: Coordination

Clock synchronization

Physical clock
  • NTP (Network Time Protocol)
  • GPS synchronization
  • Clock drift and correction
Logical clock
  • Lamport's algorithm (happens-before)
  • Vector clock (causality)
  • Hybrid Logical Clocks

Coordination Algorithms

Mutual exclusion
  • Centralized algorithm
  • Distributed algorithm (Ricart-Agrawala)
  • Token ring algorithm
Leader selection
  • Bully Algorithm — selection of a node with max. ID
  • Ring Algorithm - roundabout
  • Raft Leader Election - modern approach

Detailed analysis

Code of Architecture

Detailed analysis of the chapter on naming from Alexander and the Code of Architecture club

Read the analysis

Chapter 6: Naming

Flat names

Identifiers without structure

Broadcasting:ARP, DHCP
Forwarding:Pointer chains
DHT:Chord, Pastry

Structured names

Hierarchical namespaces

DNS:Domain names
File systems:File paths
X.500:Directory services

Attribute names

Search by attributes

LDAP:Directory queries
RDF:Semantic web
Service Discovery:Consul, etcd

Detailed analysis

Code of Architecture

Detailed analysis of the chapter on consistency from Alexander and the Code of Architecture club

Read the analysis

Chapter 7: Consistency and Replication

Data-centric models

Strict Consistency
Absolute order of all operations
Sequential Consistency
Everyone sees the same order
Causal Consistency
Preservation of cause-and-effect relationships
Eventual Consistency
Consistency over time

Client-centric models

Read Your Writes
The client sees his records
Monotonic Reads
Monotony of reading
Monotonic Writes
The order of the entries is maintained
Writes Follow Reads
Write after reading is consistent

Consistency Protocols

Primary-based

Remote-write, Local-write protocols

Replicated-write

Active replication, Quorum-based

Cache coherence

Write-through, Write-back protocols

Video analysis

Code of Architecture

Video analysis of the chapter on fault tolerance from Alexander and the Code of Architecture club

Watch video

Chapter 8: Fault Tolerance

Failure Models

Crash failure
The server suddenly stops
Omission failure
Lost requests or responses
Timing failure
Violation of time restrictions
Byzantine failure
Arbitrary (malicious) behavior

Consensus

Paxos

Classical Lamport consensus algorithm. Phases: Prepare → Promise → Accept → Accepted.

Two-Phase Commit (2PC)

Atomic commit protocol for distributed transactions. Coordinator → Prepare → Vote → Commit/Abort.

Process sustainability

Replication

Active and Passive replication for high availability

Process groups

Virtual synchrony for consistent state

Recovery

Checkpointing and message logging

Detailed analysis

Code of Architecture

Detailed analysis of the chapter on security from Alexander and the Code of Architecture club

Read the analysis

Chapter 9: Security

Cryptographic Basics

Symmetric encryption
AES, one key for encryption/decryption
Asymmetric encryption
RSA, public/private keys
Hash functions
SHA-256 integrity check

Protecting distributed systems

Secure channels
TLS/SSL, mutual authentication, perfect forward secrecy
Access Control
ACL, capabilities, role-based access control (RBAC)
Key management
PKI, Certificate Authorities, key distribution

Results and recommendations

Strengths

  • Fundamental coverage of distributed systems theory
  • Algorithmic approach with proofs
  • Examples in Python make the material more accessible
  • Deep coverage of consistency and coordination
  • Excellent chapter on safety

Who is it suitable for?

  • For students studying distributed systems
  • Engineers who want to understand the theoretical fundamentals
  • For those who want to gain a deeper understanding of consensus algorithms
  • Preparation for positions at the Staff+ Engineer level
  • Researchers and academic professionals

Verdict: The book by Tanenbaum and van Steen is a fundamental textbook that provides a deep understanding of the principles of building distributed systems. Unlike how-to guides, it explains Why systems work this way and not otherwise. Recommended reading along with DDIA: Tanenbaum gives the theory, Kleppmann gives the practical application.

Where to find the book

Enable tracking in Settings

System Design Space

© 2026 Alexander Polomodov