Part I. System Design Basics
Perfection is finally attained not when there is no longer anything to add but when there is no longer anything to take away.
Antoine de Saint-Exupéry
The first part of this book will give you a solid foundation in system design, offering insights into the fundamental principles that underpin all types of software systems, ranging from trade-offs to the criteria for picking the right tools and technologies and thus, the right architecture patterns.
In Part I, you will:
-
Grasp the system trade-offs inherent in large-scale distributed systems and know how to balance conflicting demands like scalability, reliability, and maintainability
-
Develop a clear understanding of options for data storage, including file, block, and object stores, alongside relational and nonrelational databases and methods for scaling them
-
Master techniques to achieve low latency and high throughput in storage and compute through caching and content delivery networks (CDNs)
-
Learn to horizontally scale systems with load balancers, API gateways, and reverse proxies
-
Navigate the choices among communication and network protocols at different layers of the Open Systems Interconnection (OSI) and TCP/IP models and know how to choose when to use what
-
Familiarize yourself with the system design architecture patterns that are commonly used in the industry and learn how to adapt them to various system requirements
-
Gain insight into the AWS services that map to different system ...