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.
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!
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
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!