Designing Data-Intensive Applications
- Length: 400 pages
- Edition: 1
- Language: English
- Publisher: O'Reilly Media
- Publication Date: 2015-07-25
- ISBN-10: 1449373321
- ISBN-13: 9781449373320
- Sales Rank: #4025 (See Top 100 Books)
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Want to know how the best software engineers and architects structure their applications to make them scalable, reliable, and maintainable in the long term? This book examines the key principles, algorithms, and trade-offs of data systems, using the internals of various popular software packages and frameworks as examples.
Tools at your disposal are evolving and demands on applications are increasing, but the principles behind them remain the same. You’ll learn how to determine what kind of tool is appropriate for which purpose, and how certain tools can be combined to form the foundation of a good application architecture. You’ll learn how to develop an intuition for what your systems are doing, so that you’re better able to track down any problems that arise.
Table of Contents
Part I. Foundations of Data Systems
Chapter 1. Reliable, Scalable, and Maintainable Applications
Chapter 2. Data Models and Query Languages
Chapter 3. Storage and Retrieval
Chapter 4. Encoding and Evolution
Part II. Distributed Data
Chapter 5. Replication
Chapter 6. Partitioning
Chapter 7. Transactions
Chapter 8. The Trouble with Distributed Systems
Chapter 9. Consistency and Consensus
Part III. Derived Data
Chapter 10. Batch Processing
Chapter 11. Stream Processing
Chapter 12. The Future of Data Systems