Chapter 1: Reliable, Scalable, and Maintainable Applications

Summary: This chapter introduces the core terminology and approach used throughout the book, focusing on the three main concerns of data-intensive systems: reliability, scalability, and maintainability.

Sources: chapter1

Last updated: 2026-04-15


In many applications today, the amount of data, its complexity, and the speed at which it changes are the primary challenges, rather than raw CPU power. These are referred to as data-intensive applications.

Such applications are typically built from standard building blocks like databases, caches, search-indexes, stream-processing, and batch-processing.

The chapter focuses on three important concerns:

  1. reliability: The system should continue to work correctly even in the face of adversity (hardware or software faults, and even human error).
  2. scalability: As the system grows, there should be reasonable ways of dealing with that growth (measuring load and performance, latency percentiles, throughput).
  3. maintainability: Over time, many different people will work on the system, and they should all be able to work on it productively. This involves operability, simplicity, and evolvability.