Facebook System Design- how to design social media- Instagram , TikTok system design

Поделиться
HTML-код
  • Опубликовано: 26 ноя 2024

Комментарии • 92

  • @srikanthperne2057
    @srikanthperne2057 9 месяцев назад +12

    This is the best instagram system design video without any fluff. One correction is, CDNs typically cache content based on its popularity and request frequency (so, not just for celebrities). So, a pic posted by some normal person which goes viral is also cached by CDN.

  • @div0007
    @div0007 11 месяцев назад +6

    Great content Pratiksha and loved your structured approach to the overall design. May I point out a small mistake in the storage estimation. 100 mil posts per day with an average size of a post being 10 MB would be 100 * 10^6 * 10 * 10^6(1 MB) B = 1000 * 10^12 = 1000 TB

  • @Waruto
    @Waruto 10 месяцев назад +3

    this is by far one of the most comprehensive and concise system design video for Instagram I've ever seen. Well done!

  • @buckybarnes9135
    @buckybarnes9135 Год назад +6

    Literally you made system design so simple, thank you much

  • @nancygupta4419
    @nancygupta4419 10 месяцев назад +1

    Very simple and easy to understand! Looking forward to more design videos. Thanks!

  • @flex.abhi1
    @flex.abhi1 9 месяцев назад +3

    Finally a properly structured sys design video with all the pieces in the right order.
    One feedback is, you went a little fast on of few parts without proper reasoning for the choices you are making.
    Like why fanout service is needed to update the feed of users and how it will work. How multiple containers will be able to talk to multiple containers of upload media service before you put in the message queue.
    How CDN will work only for celebrities? Why not for all?
    One of the most important question in these systems designs is how to speed up the feed generation by pre generating the feed instead of generating it on runtime and putting the load on DB. That's the part you should have spent sometime on.
    Overall of great structured video. 10x better than the already available videos on RUclips. Subscribed.

  • @mr.anonymous1994
    @mr.anonymous1994 4 месяца назад +1

    Awesome 😮 information mam . It's my first step learning system design.. i think it's a great start ... ❤

  • @melodicamallik5418
    @melodicamallik5418 Год назад +2

    Good one yet again. one suggestion, Can you please make a dedicated vIdeo on fault tolerance? As most of the videos just contain a template of server and database replication as a default fault tolerance strategy, diving deep into how the system will recover and rollback when a distributed transaction happens across Microservices will help a lot for the viewers.Also,naming of the microservices can be a little more intuitive>if it was intentionally used for simplicity reasons kindly ignore.Also please justify the tradeoff of choosing NoSQL for storing the Posts data, as NoSQL is not transactional in nature.

  • @iyerland0427
    @iyerland0427 26 дней назад

    This is excellent and to the point! BTW, which drawing tool do you use/suggest?

  • @sarathkumar6210
    @sarathkumar6210 3 месяца назад +1

    Amazing Video! What's the tool that you're using?

  • @puran_
    @puran_ Год назад

    The best system design interview I have seen and this gives me confidence for the interviews

    • @pratikshabakrola
      @pratikshabakrola  Год назад

      Thank you so much for sharing that! Gives me encouragement to do more of these :)

  • @sridharshree3034
    @sridharshree3034 Месяц назад

    Very useful thank you

  • @kidoo1567
    @kidoo1567 14 дней назад

    Clear😊 thanks

  • @hardekghewwalaa
    @hardekghewwalaa Год назад

    Excellent, you made the system design so simple. Thank you so much. Keep posting good content.

  • @JohnDoe-oe9tk
    @JohnDoe-oe9tk 8 месяцев назад

    Clear ,Concise and structured explanation . Thank you so much

  • @CharanKumar-rd7rw
    @CharanKumar-rd7rw 7 месяцев назад

    Thank you for the video! Could you please share which libraries you use with Excalidraw for system design?

  • @thesoftwareengineer17
    @thesoftwareengineer17 2 месяца назад

    Hey. Ur system design video is really helpful and very much simpler to understand. The approach n sequence seems great. Just a suggestion plz give details more about using elastic search, Kafka or any messaging queue.also spark or Hadoop if necessary anywhere in design

  • @iSaac-kp5lk
    @iSaac-kp5lk Год назад

    You're simply the best in these system design tutorials

    • @pratikshabakrola
      @pratikshabakrola  Год назад

      Thank you, iSaac! Appreciate the feedback! Will upload more videos soon!

  • @bforbhakti1
    @bforbhakti1 10 месяцев назад

    Awesome content out of all watched so far..simple and relatable

  • @Rohitkumarsinha-u1k
    @Rohitkumarsinha-u1k Год назад

    Thank you for this content hope to see more system design interview questions covered by you

  • @lhrolim
    @lhrolim 5 месяцев назад

    The best sytem design videos aroud. really like the method of starting small and dealing with high throughput and availability next.

  • @alexeybreez9102
    @alexeybreez9102 3 месяца назад

    What does mean "create post service simply adds media to the queue"? Just push binary data to the queue is bad idea, so we need to save this data in tmp storage (disk maybe) and push link to the location as an message in queue. Or what did you meant?

  • @vaishnaviganseh2884
    @vaishnaviganseh2884 Год назад

    Hands down the best Instagram system design video. Would you also be able to do a system design video on trading system or a position keeping system ?

  • @L-bp5zp
    @L-bp5zp Год назад

    Your videos are very helpful..please continue doing more videos...please post videos on microservices and kubernetes

  • @gautambadveti6522
    @gautambadveti6522 2 месяца назад

    Very good

  • @chriso9011
    @chriso9011 Год назад

    I find your system design videos to be very pragmatic. Can you do a video for technical retrospective as well. Would love to hear how you deep dive into a previous project

    • @pratikshabakrola
      @pratikshabakrola  Год назад

      That's a great idea! Once I have enough system design videos, I will consider this a next topic. Thanks

  • @machinelearning6726
    @machinelearning6726 Год назад

    Thanks Pratiksha for always delivering informative contents.

    • @pratikshabakrola
      @pratikshabakrola  Год назад

      Thank you so much @machinelearning6726 for sharing the feedback!

  • @rmadhavmca1
    @rmadhavmca1 9 месяцев назад

    one suggestion why do we create a separate database for each feature(user, Post, interactions etc.) I got the idea of Relationships(GraphDB). If we maintain separate databases for each type of object we need to make 3 additional DB calls to fetch the data.

  • @jaskaransingh4704
    @jaskaransingh4704 3 месяца назад

    Very helpful

  • @mayuragrawal4410
    @mayuragrawal4410 5 месяцев назад

    What tool do you use for designing systems in your videos

  • @mrGrey2009
    @mrGrey2009 2 месяца назад

    4. we pick nosql because the nested structure of comments but then you provided a flat structured schema for the Interactions database. I am missing something

  • @balu2gani
    @balu2gani Год назад +1

    Thanks for making this video. Was the ending abrupt? Is there a part 2 of this ?

    • @pratikshabakrola
      @pratikshabakrola  Год назад +1

      I have covered all the content, there is no part 2. Thank you for pointing that out! It’s good feedback, I will do proper closure in next videos!

  • @rupeshkumar7226
    @rupeshkumar7226 Год назад

    Thank you Pratiksha for quick and informative contents, please make videos on different category of system design questions

  • @ankushvirmani9039
    @ankushvirmani9039 5 месяцев назад

    You should have talked about fan out service, how it will pre create user feed

  • @gkdaeiaef
    @gkdaeiaef 4 месяца назад

    Why didn't you use NOSQL for posts, since we are ok with eventual consistency and it also scales well.

  • @neelbanerjee7875
    @neelbanerjee7875 3 месяца назад

    Your channel is underrated..

  • @saviorodrigues4248
    @saviorodrigues4248 3 месяца назад

    For storage it should be 1000TB or 1PB per day? 100M * 10MB

  • @abhisheksirohi4964
    @abhisheksirohi4964 6 месяцев назад +1

    Please put more effor in researching and reading about the existing social media applications before comming up with a design. Fetching everything via get feed service - even media files - seems very wrong as that data can be fetched independently (via cdn or some other read post service) once postIds are retrieved. Same goes for iteration db data as that also can be fetched independently. If this all would have been returned by a single API - it will take forever.

  • @melodicamallik5418
    @melodicamallik5418 Год назад

    Also, Can posts and interaction data reside in a single database? Say if we need to retrieve a post and all its interactions, having a n/w call from post service to interaction service is really costly. Instead ,if we can have both of them stored locally in the same database< retrieval is much more convenient>Also we can add a caching layer on top of the posts and interactions data for frequently accessed celebrity posts which were least frequently updated

  • @YuGan-lm4ce
    @YuGan-lm4ce Год назад

    very helpful, thanks

  • @ViralLordGaming
    @ViralLordGaming 9 месяцев назад

    problem with graph storage is that its gonna be a big mess solving distributed queries.

  • @hmbadruzzaman4720
    @hmbadruzzaman4720 Год назад +1

    It seems you take user as a db and not a table. Why so? Why every entity is treated as a different db and a table? If it is microservises we need to talk about the overhead pf talking to each other and add a gateway. Am I missing something?

  • @ronishjariwala8714
    @ronishjariwala8714 Год назад

    I found the information you provided to be very helpful and informative, especially considering it only took 12 minutes. Would it be possible for you to share a PDF version of this material? That would be greatly appreciated.

    • @pratikshabakrola
      @pratikshabakrola  Год назад

      Hello Ronish,
      Thank you for sharing the feedback ! I would be happy to create pdf for the new videos I make. For past videos, I will check and see if it’s easy to make pdfs out of what I have.

  • @deep8843
    @deep8843 6 месяцев назад

    Really helpful!

  • @navsmail
    @navsmail Год назад

    very nice SD videos you are doing :)

  • @natkhat19jay
    @natkhat19jay 2 месяца назад

    Zerodha grow and any fintech design please

  • @vanvothe4817
    @vanvothe4817 Год назад +1

    How to learn design system? Do you recommend any book?

    • @pratikshabakrola
      @pratikshabakrola  Год назад +1

      Hello @vanvothe4817,
      You will find all the resources in "How to Ace a System Design Interview" video. In the beginning of the video, I have shared important concepts that are useful to learn but you can skip over that and directly go to the resources mentioned later in the video.
      Hope this helps :) All the best!

  • @ViralLordGaming
    @ViralLordGaming 9 месяцев назад

    correction the memory req would be 1 petabyte.

  • @bhaveshgupta3846
    @bhaveshgupta3846 7 месяцев назад

    I dont understand Interaction Database design part. You are storing PostID and the UserID along with comment and you mention nesting. But how will you support nesting this way ?

    • @bhaveshgupta3846
      @bhaveshgupta3846 7 месяцев назад

      Also if youre posting the comment then the Post DB would get updated right ? so why would you need another interaction DB to begin with... hmmm
      I would have made the post DB to be noSQL and added nesting there for comments. You could make the POST API call to update the POST DB given the same parameters and the index of the new comment on the post

  • @divyapriya4509
    @divyapriya4509 Год назад

    Really well informative and structured video! Also, which tool you are using for high-level design?

    • @pratikshabakrola
      @pratikshabakrola  Год назад

      Thank you, Divya! Are you asking for the editor I am using? It’s Excalidraw. If you want to know more about the interview preparation tools then watch “crack System design interview” video. Towards the end there are some great resources!

    • @divyapriya-zq7ir
      @divyapriya-zq7ir Год назад

      @@pratikshabakrola Sure, will definitely watch it. Thanks for the suggestion Pratiksha.

  • @FarhanKhan-wu3fq
    @FarhanKhan-wu3fq Год назад +1

    where did you get your accent?

    • @pratikshabakrola
      @pratikshabakrola  Год назад +1

      ha ha ! I am not sure! I think I pick up accent pretty quickly!

  • @HaphazardlyCore
    @HaphazardlyCore Год назад

    What is the tool that you are using to draw?

    • @pratikshabakrola
      @pratikshabakrola  Год назад

      I am using Excalidraw. It's a great tool for practicing interviews or any realtime collaborations. It also has tons of built-in libraries of graphics.

  • @chriso9011
    @chriso9011 Год назад

    If the data in the Post DB is archived (for example every 6 months as you have mentioned) how can older data (> 6 months) be accessed if a user tries to access older post

    • @pratikshabakrola
      @pratikshabakrola  Год назад +1

      We can have a on-demand retrieval mechanism, that restores archived content as user tries to access it. User will experience a slight delay when image is loading.
      Ex: Amazon S3 Standard-Infrequent Access (S3 Standard-IA) could be an ideal candidate. Please read more here: aws.amazon.com/s3/storage-classes/

  • @musicalbattle8755
    @musicalbattle8755 2 месяца назад

    Why all microservices are tightly coupled , Talking to each others database . Its a very basic design.

  • @MustafizKaifee
    @MustafizKaifee Год назад

    Hi, which app/website are you using to create this diagram ?

    • @jelenamarusic3641
      @jelenamarusic3641 Год назад +1

      She has a video named "Ace the system design interview" (or something similar), where she shows at the end that she is using excalidraw. She also shows which shape libraries she is using.

    • @pratikshabakrola
      @pratikshabakrola  Год назад

      I am using Excalidraw

    • @pratikshabakrola
      @pratikshabakrola  Год назад

      @jelenamarusic3641
      Thank you for helping others with these questions :)

  • @1mpiero
    @1mpiero 6 месяцев назад

    Have a lot of problems,
    1- this system for monolithic and big system use microservice and in microservice system design is different,
    2- in database image is another table, and it's a very bad example of system design.
    3- in API request must have pagination, no limitation for result.
    And ...

  • @utkarshtyagi4648
    @utkarshtyagi4648 Месяц назад

    Something wrong when calculating storage of posts per day.

  • @Gyana.Ranjan
    @Gyana.Ranjan Год назад +1

    are you a human or robot ?

  • @alicenNorwood
    @alicenNorwood 8 месяцев назад

    You've lost one 10 in your calculation, it's actually 1000TB/day

  • @CharanKumar-rd7rw
    @CharanKumar-rd7rw 7 месяцев назад

    Thank you for the video! Could you please share which libraries you use in Excalidraw for system design?