Inside front cover

 
This is a quick lookup guide for common considerations in system design. After you read the book, you can refer to the appropriate sections when you design or review a scalable/distributed system and need a refresher or reference on a particular concept.

Concept

Chapter(s)/section(s)

Tradeoffs

1.1, 2

A simple full stack design

1.4

Functional partitioning, centralization of cross-cutting concerns

1.4.6, 6

Requirements

2, 3

Logging, monitoring, alerting

2.5

Distributed databases

4

Sampling

4.5, 11.8-10

Distributed transactions

5

Library vs. service

6.6, 12.6

REST, RPC, GraphQL, WebSocket

6.7

Graceful degradation

2, 3.3

Data migrations

7.7

Distributed rate limiting

8

Distributed notification service

9

Data quality

2.5.5, 10 (also covers auditing)

Exactly-once delivery

14

Personalization

1.4, 16

Lambda architecture

17

Authentication and authorization

13.3, appendix B