// ddia notes
Designing Data-
Intensive Applications
Condensed, interview-ready notes from Martin Kleppmann's DDIA — the SDE interview bible. One chapter at a time.
01
DDIA · Ch.1
Reliable, Scalable & Maintainable
The three concerns behind every data system — and what each really means in practice.
Apr 01, 2023
↗
02
DDIA · Ch.2
Data Models & Query Languages
Relational vs document vs graph models, and the query languages that drive them.
Apr 02, 2023
↗
03
DDIA · Ch.3
Storage & Retrieval
How databases store and find data — hash indexes, LSM-trees, B-trees, and OLAP.
Apr 02, 2023
↗
04
DDIA · Ch.4
Encoding & Evolution
Backward vs forward compatibility, schema evolution with Protobuf/Thrift/Avro, and the three modes of dataflow.
Apr 03, 2023
↗
05
DDIA · Ch.5
Replication
Single-leader, multi-leader, and leaderless replication, replication lag, and quorums.
Apr 04, 2023
↗
06
DDIA · Ch.6
Partitioning
Key-range vs hash partitioning, hot spots, secondary indexes, rebalancing, and routing.
Apr 05, 2023
↗
07
DDIA · Ch.7
Transactions
ACID, isolation levels, lost updates and write skew, and the paths to serializability.
Apr 06, 2023
↗
08
DDIA · Ch.8
The Trouble with Distributed Systems
Unreliable networks and clocks, process pauses, fencing tokens, and Byzantine faults.
Apr 07, 2023
↗
09
DDIA · Ch.9
Consistency & Consensus
Linearizability, CAP, ordering and causality, two-phase commit, and consensus.
Apr 08, 2023
↗
10
DDIA · Ch.10
Batch Processing
The Unix philosophy, MapReduce, joins, and dataflow engines like Spark and Flink.
Apr 09, 2023
↗
11
DDIA · Ch.11
Stream Processing
Event streams, log-based brokers, CDC, event sourcing, windows, and stream joins.
Apr 10, 2023
↗
12
DDIA · Ch.12
The Future of Data Systems
Deriving data from logs, unbundling the database, end-to-end correctness, and ethics.
Apr 11, 2023
↗