Designing Data-Intensive Applications

By Martin Kleppmann,

Book cover of Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

Book description

Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including NoSQL datastores, stream or batch processors, and message brokers. What are the right…

Shepherd is reader supported. When you buy books, we may earn an affiliate commission.

Why read it?

2 authors picked Designing Data-Intensive Applications as one of their favorite books. Why do they recommend it?

This is the best overview of data storage and distributed systems—two key concepts for building almost any piece of software today—that I've seen anywhere. Martin does a wonderful job of taking a massive body of research and distilling complicated concepts and difficult trade-offs down to a level anyone can understand.

I learned a lot about replication, partitioning, linearizability, locking, write skew, phantoms, transactions, event logs, and more. I'm also a big fan of the final chapter, The Future of Data Systems, which covers ideas such as "unbundling the database", end-to-end event streams, and an important discussion on ethics in programming…

Designing Data-Intensive Applications is the best book if you want to learn about the main principles behind every system that is able to store and process big amounts of data.

You'll learn about distributed storage systems, their tradeoffs (availability, consistency, fault-tolerance), streaming processing systems, and main algorithms.

Those are the critical concepts behind almost every successful company that needs to create scalable solutions. 

From Tomasz's list on big data processing ecosystem.

Want books like Designing Data-Intensive Applications?

Our community of 11,000+ authors has personally recommended 52 books like Designing Data-Intensive Applications.

Browse books like Designing Data-Intensive Applications

5 book lists we think you will like!

Interested in big data, python, and data mining?

Big Data 29 books
Python 30 books
Data Mining 13 books