Book Review – Designing Data-Intensive Applications

Introduction

Exactly one year ago, I bought Designing Data-Intensive Applications by Martin Kleppmann. However, since I was busy writing High-Performance Java Persistence, it took me over a year to find the time to read Martin Kleppmann’s book.

This post is a review of what this book is all about and why you should be interested in reading it.

Audience

If you are a backend developer, a team leader or a software architect, this book must be on your reading list. While a junior developer might find the book interesting too, you got to have some background knowledge so that everything falls into place.

Content

The book is a very detailed summary of how database systems work. From relational databases to data warehouses, key-value stores, column-oriented databases, Martin Kleppman describes a great deal of aspects like:

  • storage engines and indexing
  • data encoding
  • data partitioning
  • replication techniques
  • transactions and concurrency control
  • distributed systems and consensus algorithms
  • batch processing
  • streaming

Why you should buy it?

Although some concepts are not very easy to understand, Martin Kleppman does a very good job explaining all these concepts using down-to-earth examples.

The book is a summary of hundreds of research papers, books, and other scientific articles that would require you a great deal of effort to go through all of them, albeit to understand them. Hopefully, you don’t have to since the book is exactly what you need to get a better understanding of how data management systems.

Conclusion

I strongly recommend you buying this book. Although I read it, I’m sure that I’ll come back to it in future to validate that I haven’t forgotten anything I learned from this book.

If you liked this article, you might want to subscribe to my newsletter too.