Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.
Book · System DesignAbout $30, free sample chapters

Understanding Distributed Systems

Roberto Vitillo's book pitched between introductory blog posts and graduate textbooks, covering communication, coordination, scalability, resiliency and maintainability of large distributed applications. The second edition adds operations topics such as monitoring and observability. Rigorous enough to be useful and short enough to finish, it suits developers who want real distributed systems knowledge before tackling heavier books.

Get access
Latest edition

2nd edition, 2022

Goodreads · Sept 2026

Goodreads rating

4.37/5 (552 ratings, 1st ed.)

Goodreads · Sept 2026

Format

Book

Topic

System Design

Provider

Roberto Vitillo

Time needed

4 to 6 weeks

Level

Intermediate

Access

About $30, free sample chapters

What the book covers

The full title is "Understanding Distributed Systems: What every developer should know about large distributed applications". The author, Roberto Vitillo, has worked on large scale systems in industry, and wrote the book to fill the gap between shallow introductions and research level material. It is organised around five themes:

  • Communication: reliable links (TCP, flow and congestion control), secure links (TLS), service discovery, APIs and messaging.
  • Coordination: system models, failure detection, time and clocks, leader election, replication, consistency models and transactions.
  • Scalability: functional decomposition, partitioning, duplication, caching, load balancing and data storage at scale.
  • Resiliency: common failure causes, redundancy, fault isolation, timeouts, retries, circuit breakers, load shedding and rate limiting.
  • Maintainability: testing, continuous delivery and deployment, monitoring (metrics, SLIs, SLOs and alerts) and observability (logs and traces).

Which edition

The second edition (2022) is the current one and expands the operational chapters. It is self published and sold as an ebook and in print through the book's site and major retailers; check the official site for current formats and prices.

What readers say

On Goodreads the first edition averages about 4.37 out of 5 from over 550 ratings, and the second edition about 4.46 from a smaller number (September 2026). Readers consistently praise it for being concise and practical, and for the resiliency chapters. Some note that its brevity means individual topics are covered less deeply than in Designing Data-Intensive Applications.

Is it the right first book?

For most developers, yes. Designing Data-Intensive Applications is superb but a serious commitment; academic papers are the primary source but hard going. This book sits deliberately between them. Many engineers read it first, then move on to DDIA with a much easier time.

It is less suitable if you already know consensus, replication and consistency models well. In that case, go straight to DDIA or MIT's 6.5840.

How long it takes and how to read it

The book is short enough to read in two to four weeks at a steady pace. Read it in order, because the chapters build on each other. Suggestions:

  • After the communication part, run a small experiment: use tcpdump or Wireshark to watch a TLS handshake.
  • After the resiliency part, audit a service you work on. Does every outbound call have a timeout? Are retries bounded and jittered?
  • After the maintainability part, write down the SLIs and SLOs you would set for that service.

The resiliency and operations sections are the ones most likely to change how you work day to day.

Pair it with

  • Designing Data-Intensive Applications as the deeper second book.
  • Martin Kleppmann's Cambridge lecture series for the theory of clocks, broadcast and consensus.

Best for: developers who want solid, practical distributed systems knowledge without committing to a textbook or a graduate course.

system designbackendcomputer science

Ready to start?

Opens on Roberto Vitillo in a new tab.

Get access
Link broken or out of date?

Report a problem

With "Understanding Distributed Systems". Only Tauseef reads this.

Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.