Data systems outlive applications, frameworks, and infrastructure.
They encode decisions that shape what a system can become-and what it can never safely change.
Designing Modern Data Systems is a deep, decision-driven guide to building data systems that are reliable, scalable, and adaptable over time. Rather than focusing on tools or trends, this book teaches how to reason about architecture itself: how guarantees are chosen, where authority lives, how failures manifest, and how systems evolve under real-world pressure.
Written for experienced engineers and architects, the book treats data systems as long-lived sociotechnical systems-not just databases or pipelines. It focuses on clarity of responsibility, explicit trade-offs, and preserving meaning as data moves, changes, and ages.
This book takes a structured journey through modern data system design:
How to define data systems as distinct from applications and infrastructureHow non-functional requirements like reliability, availability, latency, and cost shape architecture long before technology choicesHow to design data models, storage engines, and indexing strategies that survive product evolutionHow to reason about replication, partitioning, coordination, and distributed transactions without accidental complexityHow batch and stream processing fit into a unified view of data over timeHow logs, history, and derived data enable recovery, reprocessing, and safe changeHow to operate systems in production with observability, backpressure, and failure isolationHow to design data systems that support machine learning and large language model platforms, including feature pipelines and embeddingsHow to migrate, evolve, and decommission systems without outages or loss of trustThroughout the book, ideas are grounded in a single evolving reference system, allowing readers to see how architectural decisions accumulate and interact as requirements change.
What Makes This Book Different
Decision-focused, not tool-drivenThis book is written for:
Software engineers designing backend and platform systemsData engineers responsible for storage, processing, and pipelinesStaff, principal, and senior engineers shaping architectural directionArchitects and technical leaders responsible for long-term system evolutionPractitioners preparing for system design interviews who want judgment, not templatesThis is not:
A beginner's introduction to databasesA step-by-step tutorial for specific toolsA catalog of technologies or patternsInstead, it is a book about how to think clearly about data systems, and how to design them so they remain understandable, trustworthy, and changeable over time.
If you are responsible for making architectural decisions-and living with their consequences-Designing Modern Data Systems is written for you.