Publisher: O'Reilly, 2017, 590 pages
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 relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?
In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications.
This is not really about applications per se, but more about the underlying storage and communication systems that an applications may utilize, and how they work.
With that said, it makes a very good overview, with the right amount of detail for someone to understand the pros and cons of all the areas discussed, without going into too much specific implementation details. If nothing else, you will get a thorough overview of all the current buzzwords that builders of the infrastructure like to bandy around.
I am sure it will be outdated sometime in the future, but for now, this is one of the best books on the subject that you can buy. Be warned, this is only for the tech interested audience, that like to understand the nitty-gritty of the current systems that are proposed to be utilized as the back-end of many applications.