This book covers the theory and practical aspects of creating scalable and maintainable applications. It discusses various data models, storage engines, data partitioning and replication, consistency models, and distributed systems patterns. It's a comprehensive resource for understanding the fundamentals of data-intensive applications and their design principles.
This classic book by renowned software architect Martin Fowler presents a catalog of patterns and best practices for designing enterprise applications. It covers topics such as data access, domain logic, web presentation, and concurrency. The book is a great starting point for understanding the building blocks of robust and scalable software systems.
This book introduces the concept of domain-driven design, a methodology for designing software systems based on the domain model. It covers concepts such as domain modeling, ubiquitous language, repositories, and bounded contexts. This resource helps developers understand how to tackle complexity in software systems through effective modeling and design.
Written by the renowned author "Uncle Bob," this book provides insights into designing software systems with a focus on clean architecture principles. It covers topics such as component separation, dependency management, and architectural patterns. It's a great resource for developers seeking to build maintainable, testable, and scalable software systems.
This book specifically targets preparing for system design interviews but also serves as a concise resource for learning the basics of system design and architecture. It covers topics such as load balancing, caching, sharding, and various architectural patterns. It's an excellent resource for those looking to quickly grasp the fundamentals of system design.
This book presents 50 practical rules for designing scalable web applications. The authors draw upon their experience in managing large-scale systems to provide best practices for dealing with performance, availability, and scalability issues. This resource is suitable for those looking to understand the key principles of designing and maintaining high-traffic web applications.