Skip to content

Book Notes

15 topics · Stage 7

Complete

Designing Data-Intensive Applications15

  • 01Trade-Offs in Data Systems ArchitectureNo data system is universally best, every architectural decision is a trade-off. The skill is learning to ask the right questions to evaluate them for your application.22 min
  • 02Defining Nonfunctional RequirementsBeyond what a system does, its performance, reliability, scalability, and maintainability decide whether it's usable at all. This chapter gives the vocabulary to define and measure them.21 min
  • 03Data Models and Query LanguagesThe data model you pick shapes how you think about a problem. A tour of the relational, document, graph, event-log, and DataFrame models and their query languages, and when to use which.21 min
  • 04Storage and RetrievalHow databases store data and give it back: OLTP engines (log-structured LSM-trees vs update-in-place B-trees) and column-oriented OLAP engines, and how to pick and tune one.21 min
  • 05Encoding and EvolutionOld and new code run side by side during rolling upgrades, so every byte must stay backward and forward compatible. A tour of JSON, Protocol Buffers, and Avro, and the ways data flows between processes.18 min
  • 06ReplicationKeeping copies of the same data on multiple nodes. Three families, single-leader, multi-leader, and leaderless, each trade consistency against availability and latency differently.20 min
  • 07ShardingSplitting one dataset into shards spread across nodes so data and write throughput scale beyond a single machine, covering key-range vs hash sharding, rebalancing, request routing, and secondary indexes.15 min
  • 08TransactionsGrouping reads and writes into one unit that fully commits or aborts: ACID, weak isolation levels and the anomalies they miss, the routes to serializability, and two-phase commit.19 min
  • 09The Trouble with Distributed SystemsPartial failure is the defining hazard: lost and delayed messages, drifting clocks, process pauses, quorums, fencing tokens, system models, and how to test for all of it.18 min
  • 10Consistency and ConsensusStrong consistency means behaving like one node (linearizability); doing it fault-tolerantly is consensus. Covers CAP, logical clocks, total order broadcast, and coordination services.16 min
  • 11Batch ProcessingTransform a bounded, immutable input into output with no side effects, rerunnable, debuggable, and throughput-oriented; covering MapReduce, dataflow engines, the shuffle, joins, and serving derived data.15 min
  • 12Stream ProcessingBatch's unbounded counterpart, process events continuously, where a database's writes are themselves a stream; covering message brokers, CDC, event sourcing, time and windows, stream joins, and exactly-once.15 min
  • 13A Philosophy of Streaming SystemsDesignate a system of record, derive everything else from its ordered log ("unbundle the database"), and separate timeliness from integrity, covering data integration, dataflow applications, and the end-to-end argument.15 min
  • 14Doing the Right ThingData systems have human consequences, and engineers are responsible for them, covering predictive analytics, bias and feedback loops, surveillance and consent, and data as both power and a toxic asset.13 min
  • 15DDIA Master Revision SheetOne-page-per-chapter distillation of the highest-yield ideas across all 14 chapters, plus cross-cutting themes and a rapid-fire flashcard bank for whole-book review.10 min