Book review: Designing Data-Intensive Applications
Designing Data Intensive Applications (DDIA) is one of the most popular books in the present times1. It’s hardly a surprise that it is so!
Dr. Martin Kleppmann has been that wise man — by the medium of this book — to the many grasshoppers who, like yours truly, have been continuously witnessing the onslaught of technologies, frameworks, and techniques, over the years. While we were mostly awed by the functionality, we did not always get a chance to delve deeper. Even if we did, the knowledge gained was in pockets, and to fluctuating degrees.
It’s of course true, that with experience — active or passive knowledge gain — one does get an inkling of how things work (or would be working) in most of the cases. However, in almost all the cases, the hypothesis does require a validation, or a course-correction, or an “a-ha!” moment.
The beauty of DDIA is that it provides several avenues for the all of those.
Yes, the book doesn’t of course answer all the questions, but one feels good after having gone through a few chapters, mainly because:
there seems to be, in some sense, a feeling of technical empathy, that a modern day application developer or designer can resonate with, and,
the language used is easy enough, almost conversational — so the technical terms or jargons, wherever used, are more relatable and easy to consume.
For instance, the explanation of topics like data streaming, and how the usual messaging solution used to facilitate streaming work. The author has ensured that the aspects like event logs are discussed in an apt depth, while talking about technologies that enable event sourcing (e.g. Kafka, etc.).
Such an arrangement enables the reader to continue further research on the topics that she is curious about. It provides her just enough breadth, and a direction, to make judicious technical choices — be it during development, or while deciding on the modern-day software components.
Many thanks to my friend Subodh C., for he was the one who introduced the book to me.