Thursday, February 11, 2021

Gaurav Sen: Designing Instagram: System Design of News Feed

Feb. 11, 2021

Here is the link. 

My notes:

  1. Starting from 12:00, the explanation of design is very helpful and it can apply to twitter, quora or other system 
  2. I need to understand userFeed service
  3. I like to watch again and again how Gaurav explains things so clearly and his marvelous presentation skills. 
  4. 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 

Hybrid model 

Twitter, Quora, 

No comments:

Post a Comment