2 Comments

nice article. for completeness I just want point out a couple of things:

- the database replication is a pattern called "read replicas" and together with sharding (splitting the db by rows) and federation (splitting the db by table) are some great techniques to scale a database

- on the read path to the db you can also add an in memory cache like Redis and a CDN for static assets.

if you are interested I wrote an article about the role of CDNs in system design at https://cloudnativeengineer.substack.com/p/the-role-of-content-delivery-networks

Expand full comment

Thanks for adding these wonderful points!

Sharding is a great technique for improving the scalability of your databases. Of course, it does introduce some extra complexity to the mix.

Also, I feel CDNs have become a very crucial component these days. Apart from caching, they also provide benefits like DDoS protection and availability. Thanks for sharing your post as well...bookmarked it for reading!

Expand full comment