architect-handbook

Software Architect Handbook

View on GitHub

System Design

Learning how to design scalable systems will help you become a better engineer

System design is a broad topic. There is a vast amount of resources scattered throughout the web on system design principles.

Everything is a trade-off.

The getting started architecture

You should be familiar with the classic “getting started” architecture. This is what most applications get started with, a simple web server that communicates with a single database and is exposed via a public DNS.

img.png

This is more than enough to get an application working as fast as possible, but you’ll start finding limitations soon.

Examples

System that scales to millions of users on AWS