Designing Data-Intensive Applications¶ Part 1. Foundations of Data System¶ 1. Reliable, Scalable and Maintainable Applications 2. Data Models and Query Languages 3. Storage and Retrieval 4. Encoding and Evolution Part 2. Distributed Data¶ 5. Replication 6. Partitioning 7. Transactions 8. The Trouble with Distributed Systems 9. Consistency and Consensus Part 3. Derived Data¶ 10. Batch Processing 11. Stream Processing 12. The Future of Data Systems