Feb. 11, 2021
Here is the link.
- Starting from 12:00, the explanation of design is very helpful and it can apply to twitter, quora or other system
- I need to understand userFeed service
- I like to watch again and again how Gaurav explains things so clearly and his marvelous presentation skills.
- Keywords used in the presentation: pull/ push model, celebrity, interval, pull vs push, hybrid model, news feed - twitter, quora, queue or list - size of post - followers
This video is about designing Instagram in for a system design interview. We are expected to design the server side in a way that all 4 mentioned features can be incorporated. System Design interviews evaluate a candidate's computer science fundamentals, architecture principles and so on. We start by building an entity relationship diagram. Here the columns are defined as per the requirements. We then move to designing a microservice architecture. Each microservice defines a single component of the system. The newsfeed is built step by step with concepts like load balancing and caching as prerequisites. This completes the system design for Instagram.
I like to review the video from 12:00 to 24:28
I like to take a picture of architecture first, and then go over step by step.
userfeed service, posts service, Follow service, GATEWAY (ss) (Reverse Proxy),
Post(userID, ImageU-1, ...)
Cache - LRU => size = 20
web sockets - long polling - route to
celebrity with million of followers - batch process -> 1000 people/ 10 second, limit number of people, wait for them to pull notification from you.
Push model/ Pull model (do it slowly)
Push model - Seamless - real time