Designing Data-Intensive Applications

Learn the systems trade-offs, then test recall.

Work through the DDIA mental model: reliability, scalability, maintainability, storage, replication, partitioning, transactions, batch systems, and streams. Each question explains the underlying design choice, not just the answer.

Chapter 1

Question bank

Question 1

Pick an answer to see the reasoning.
Reliability Assume faults happen. Design so the user-visible service keeps its promises.
Scalability Describe load, measure behavior, then choose architecture. Do not scale by vibe.
Consistency Every guarantee costs latency, coordination, availability, or operational complexity.
Evolution Maintainability is the ability to change systems while people are still using them.