Designing Data Intensive Applications

Designing Data Intensive Applications

The big deas behind reliable, scalable, and maintainable systems

where

  • scalable means keeping a system performant even in the face of high load
  • reliable means maintaining system correctness even in the case of faults
  • maintainability is a quality-of-life standard for the teams building and maintaining the system

Foundations of Data Systems

2. Data Models and Query Languages

3. Storage and Retrieval

4. Encoding and Evolution

Distributed Data

7. Transactions

8. The Trouble with Distributed Systems

9. Consistency and Consensus