Designing Data-Intensive Applications

  • Reliable, Scalable, and Maintainable Applications
  • Data Models and Query Languages
  • Storage and Retrieval
  • Encoding and Evolution
  • Replication
  • Partitioning
  • Transactions
  • The Trouble with Distributed Systems
  • Consistency and Consensus
  • Batch Processing
  • Stream Processing
  • The Future of Data Systems

1 Reliable, Scalable, and Maintainable Applications

2 Data Models and Query Languages

3 Storage and Retrieval

4 Encoding and Evolution

5 Replication

6 Partitioning

7 Transactions

8 The Trouble with Distributed Systems

9 Consistency and Consensus

10 Batch Processing

11 Stream Processing

12 The Future of Data Systems