Based on the search results, here are some highly recommended books on distributed systems and data-intensive applications, similar to "Designing Data-Intensive Applications":
1. Distributed Systems: Principles and Paradigms
Authors: Andrew S. Tanenbaum and Maarten Van Steen
Description: This book provides a comprehensive introduction to distributed systems, covering communication, synchronization, consistency, and fault tolerance. It is great for those looking to get started in the field of distributed computing.
2. Distributed Algorithms
Author: Nancy A. Lynch
Description: This book is a fundamental resource for understanding advanced topics in distributed systems, such as consensus theory, agreement problems, and the SNAP algorithm. It is essential for those interested in the theoretical aspects of distributed systems.
3. Scalability Rules: 50 Principles for Scaling Web Sites
Authors: Martin L. Abbott and Michael T. Fisher
Description: This book condenses years of experience into 50 reusable principles for deploying high-availability web applications and massive-scale distributed systems. It provides valuable insights for achieving scalability and reliability.
4. Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing
Authors: Tyler Akidau, Slava Chernyak, and Reuven Lax
Description: This book focuses on stream processing in distributed systems, providing practical methods and user stories that demonstrate how to effectively build and deploy streaming data systems.
5. Building Microservices
Author: Sam Newman
Description: This book covers the steps involved in implementing, installing, and maintaining microservices. It addresses issues such as service decomposition, communication interfaces, and deployment strategies, making it a valuable resource for teams working with microservices.
6. Site Reliability Engineering: How Google Runs Production Systems
Authors: Niall Richard Murphy, Betsy Beyer, Chris Jones, and Jennifer Petoff
Description: This book shares Google's extensive experience in building and operating distributed systems. It covers SRE principles, incident response, capacity management, and automation, providing guidelines for maintaining the reliability and scalability of distributed systems.
7. Release It!: Design and Deploy Production-Ready Software
Author: Michael T. Nygard
Description: This book introduces readers to the challenges of running distributed systems in a production environment. It covers stability patterns, capacity planning, and fault recovery strategies, making it a must-read for engineers responsible for production systems.
8. Distributed Systems for Practitioners
Author: C. Thomas Wu
Description: This book bridges the gap between theory and practice, providing concrete tips on planning, deploying, and maintaining distributed systems. It is a practical guide for building resilient and scalable distributed systems.
9. Thinking in Systems: A Primer
Author: Donella Meadows
Description: This book provides a foundation in systems thinking, focusing on the interactions between components rather than the components themselves. It uses everyday metaphors to explain core systems thinking ideas, making it useful for understanding broader system concepts.
10. Drift into Failure: From Hunting Broken Components to Understanding Complex Systems
Author: Sidney Dekker
Description: This book explores the cultural and environmental causes of system failure, providing valuable insights for understanding the broader context of system reliability and security. It is particularly useful for software engineering managers.
These books cover a wide range of topics related to distributed systems and data-intensive applications, providing both theoretical knowledge and practical advice. They are highly recommended for anyone looking to deepen their understanding of these areas.