Preface
There are hundreds of databases to choose from. Which one should you use for your application? The short answer is, “it depends.” The long answer is… this book.
Different technologies for storing and processing data make different trade-offs, and there is no one approach that is best for all situations. The system that is a perfect fit for one application is badly suited to another. This book is a guidebook to the entire landscape of data systems—looking not at just one product, but comparing the strengths and weaknesses of many different systems.
Although the landscape of technologies for processing and storing data is diverse and fast-changing, the underlying principles endure. If you understand those principles, you’re in a position to see where each tool fits in, how to make good use of it, and how to avoid its pitfalls. This book focuses on those principles.
While this book is not a tutorial for one particular tool, it isn’t a textbook full of dry theory either. Instead, we will look at many examples of successful data systems: technologies that form the foundation of many popular applications and that have to meet scalability, performance, and reliability requirements in production every day. We will dig into the internals of those systems, tease apart their key algorithms, and discuss the trade-offs they have made. On this journey, we will try to find useful ways of thinking about data systems—not just how they work, but also why they work that way, and what questions ...