DDIA Notes & Study Paths
These notes follow the 12 chapters of the first edition of Designing Data-Intensive Applications. Review the concepts, then explain their tradeoffs in a design exercise. Use the notes alongside the book, not as a replacement.
Choose a study path
Read the chapters in order on your first pass. For interview revision, choose a path and explain the answers aloud.
- Build the foundations: Chapter 1: reliability, scalability and maintainability → Chapter 2: data models → Chapter 3: storage and retrieval. Exercise: what does a product catalog gain and lose with a relational versus document model?
- Design correct transactions: Chapter 7: transactions → Chapter 8: distributed-system failures → Chapter 9: consistency and consensus. Exercise: why does a payment timeout not prove failure, and how do you handle a duplicate request?
- Scale systems and data pipelines: Chapter 5: replication → Chapter 6: partitioning → Chapter 11: stream processing. Exercise: which operations may tolerate a stale search index, and which must recheck the source of truth?
Apply the notes to a complete design
Use hotel booking to practice multi-night transactions and expiry races, and ecommerce to practice cross-service checkout and compensation. For each design, write an invariant, a failure scenario and a recovery path, then explain the cost.
Edition note: chapter numbers here refer to the first edition, not the second-edition table of contents. See the official DDIA website for the book.
From chapter notes to interview practice
Bookmark or print the DDIA interview map for a concrete question per chapter, then practice full answers with the 30-question system design roadmap.