Welcome to the first article of The GeekNarrator newsletter, I am excited to start this newsletter along with the release of my 35th episode.
In this episode we have discussed on the most popular topic on earth “System Design”. I am joined by Arslan Ahmad who is the Author of the popular “Grokking” series. He is also the CEO & Co-Founder of DesignGurus.org.
Arslan, has created a template which he calls the master template, that can be used to approach many common system design problems in an interview and real world. Here is the what the master template looks like:
As you can see, there are many components that are involved in designing a scalable, reliable and highly robust application. These are different patterns that can be understood at a high level and applied in many different problems.
- A Load balancer is useful whenever you need to evenly distribute the load across several machines.
- A Api Gateway is used to route traffic from the external world to the internal world of services depending on the functionality required. It is also responsible for several other features and functionality.
- Storage systems like the File system and Databases.
- Queuing system to loosely couple different components and async processing.
- A CDN to serve static content across the globe in a low latency and highly available manner.
- A cache is used to avoid duplicate work, requests and disk access.
And so on there are many components/patterns that are applicable across many problems.
We have taken #instagram as an example and discussed two user flows in good detail:
- Posting a photo/video
- News feed generation service.
Some interesting discussion points were:
- Making workflows asynchronous
- File System vs Object stores
- Feed generation service as a mutable infinite stream of posts
- NoSQL vs SQL database choice.
- Segregating metadata and data flows
- Using relational database to store images?
- Amazing white-papers to read to understand storage systems in depth.
And many more…
Watch the full episode to dig in and join the amazing discussion we had.
Please subscribe to the channel, press the bell icon and share with your network if you liked it.