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 beh
ind 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. The Big Picture
Chapter 1. Reliable,Scalable and Maintainable Applications
Chapter 2. The Battle of the Data Models
Chapter 3. Storage and Retrieval
Part II. Systems of Record
Chapter 4. Replication