Designing data-intensive applications notes Reliable, Scalable and Maintainable Applications Data Models and Query Languages Storage and retrieval Encoding and Evolution Replication Partitioning