System Design Interview - Rate Limiting (local and distributed)

Поделиться
HTML-код
  • Опубликовано: 10 апр 2019
  • Please check out my other video courses here: www.systemdesignthinking.com
    Topics mentioned in the video:
    - Token bucket algorithm.
    - Object-oriented design of the rate limiting solution.
    - Load balancer max connections, auto-scaling.
    - Message broadcasting: full mesh network topology, gossip communication, distributed cache, coordination service.
    - Communication protocols: TCP, UDP.
    - Embedded rate limiter vs daemon process.
    - Bucket management, synchronization.
    Inspired by the following interview questions:
    Amazon (www.careercup.com/question?id...)
    Google (www.careercup.com/question?id..., www.careercup.com/question?id...)
    Uber (leetcode.com/discuss/intervie...)
  • НаукаНаука

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

  • @DavidSuarez09
    @DavidSuarez09 5 лет назад +248

    This is an extremely thorough answer with interviewer gotcha's and system tradeoffs. Exactly the type of videos needed for us engineers. Thank you so much! Keep up the excellent work! Subscribed!

    • @SystemDesignInterview
      @SystemDesignInterview  5 лет назад +21

      Appreciate your feedback, David! Words like these inspire further endeavor.

  • @hangnm81
    @hangnm81 5 лет назад +95

    Just landed my SD2 job at Amazon. Thank you so much. Your channel is really helpful

    • @SystemDesignInterview
      @SystemDesignInterview  5 лет назад +12

      Congratulations, Hannah! Really glad for you!

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

      Still working at amazon, promoted to SDE 3 or not ?

  • @roshrajthoppilan
    @roshrajthoppilan Год назад +31

    What happened to this channel ? This is the best content out there for System Design Interviews , why did they stop making videos ?

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

      paid version on his website.

    • @BobbyDigMOB
      @BobbyDigMOB 13 дней назад

      His content is the system design crash course on Leetcode

  • @secondsandthings
    @secondsandthings 5 лет назад +70

    This is the best video style I've seen on System Design interviews because it's also educational and covers lots of useful concepts for engineers.

    • @SystemDesignInterview
      @SystemDesignInterview  5 лет назад +3

      Thank you for the feedback, @secondsandthings! Glad you liked the content.

  • @prakritidevverma4315
    @prakritidevverma4315 3 года назад +18

    Oh my God, you are so good at this. I don't think anyone on RUclips is providing this much of quality content.

  • @mostinho7
    @mostinho7 Год назад +10

    4:00 why a rate limiter needs to be designed as a distributed system and not just for a single host
    11:00 algorithm for deciding wether to accept or reject req, token bucket algorithm keeps a bucket of tokens for each unique client, and has a re-fill rate. When client makes a req we check if it has tokens remaining, if not reject
    14:50 classes and interfaces oop
    17:00 rate limiter across different hosts in a cluster
    18:30 how token buckets communicate each just says how much they’ve used so far and the others can sum and make decision

  • @babylife8342
    @babylife8342 3 года назад +1

    This is the best system design youtube channel. Thank you so much for sharing your knowledge generously!

  • @zustaz
    @zustaz 2 года назад +1

    Thanks for covering the most interesting and difficult topics on you channel!

  • @gxbambu
    @gxbambu 3 года назад +1

    the best system design channel I've ever found on internet! Bravo!

  • @boqunzhang8045
    @boqunzhang8045 2 года назад +1

    Best system design interview I have ever watched. Short, clean, and thorough. Subscribed!

  • @zhengwenzhou6188
    @zhengwenzhou6188 4 года назад +1

    What an AMAZING channel! All videos are super helpful and detailed. Thank you Mikhail. Keep posting more videos and materials!

  • @vishnusingh4121
    @vishnusingh4121 3 года назад +3

    By faaaaar the BEST VIDEO and EXPLANATION in this topic! He even has code implementations!! That was super helpful. Thanks a million!

  • @waiyonglow7354
    @waiyonglow7354 4 года назад +9

    After looking through multiple resources to refresh my memory on distributed system design, your channel contains hands down the most thorough and educational content - easily rivaling university level courses I've taken on similar topics. I've never written a RUclips comment in my life, but I felt compelled to do so after watching your videos. Thank you for your excellent work.

  • @yueliang171
    @yueliang171 4 года назад +3

    This is awesome! Best and most comprehensive one I can find on RUclips. Keep up the great work! Looking forward to more videos!

    • @SystemDesignInterview
      @SystemDesignInterview  4 года назад +1

      Glad you liked! And thank you for all your comments, Yue Liang. Appreciate your feedback!

  • @perpetualcurious4425
    @perpetualcurious4425 2 года назад +1

    This is the first video I watched on your channel and you earned a subscriber. Thanks for making it so simple.

  • @TheRohkan
    @TheRohkan 3 года назад +1

    We need more videos :) this is the best channel for in-depth system design interview prep after scouring the tube

  • @ShubhamJain-ch7et
    @ShubhamJain-ch7et 3 года назад +5

    This is really thorough and truly mirrors the way system at scale are architected in companies. The best set of videos on system design out there. Please continue making more of these :). Mom's favorite flower part was really funny. I can totally relate to this. Selling your platforms to different teams in your company is already super hard, never complicate it further by telling them to add a service client :D

  • @GunjanSharma-iw6ou
    @GunjanSharma-iw6ou 2 года назад +10

    This is the most detailed, thorough and informative video I have seen so far in system design series across all the channels. Glad I came across it. Please keep making videos. Subscribed!

  • @neilteng1735
    @neilteng1735 3 года назад +1

    Most resourceful and deep system design video on the Internet.

  • @yuegu2526
    @yuegu2526 4 года назад +4

    I have to say this is a really awesome system design video, good content, good pictures. Like it so much, please upload more!

    • @SystemDesignInterview
      @SystemDesignInterview  4 года назад

      Thank you, Yue, for the feedback. Much appreciated! More videos to come.

  • @singhalvikash
    @singhalvikash 3 года назад +2

    The best System Design explanation on Rate limiter I have found so far . Kudos to you.

  • @kapilgupta8543
    @kapilgupta8543 2 года назад +2

    So organised, structured, through video seen ever on system design. At any point I expect that would be good if next section explains this thing, and in I see it's there. Felt like it reads mind. :)

  • @muskanroxx22
    @muskanroxx22 2 года назад +1

    I am a beginner in System Design and I totally loved this video. I have a MSFT interview this week and I couldn't be more grateful! :)

  • @im5DII
    @im5DII 3 года назад +2

    I felt tired and boring about learning these CS knowledge these days. But after watching diagram with clear explanation here, curiosity comes back to me and now I felt "wow easy and interesting"

  • @loojnow
    @loojnow 3 года назад +2

    Amazing content! Really appreciate the English subtitles. Keep up the good work!

  • @integralCalculus
    @integralCalculus 5 лет назад +10

    Truly amazing amount of details covered. Very coherent and organized content. Keep up the excellent work!

  • @zhongyanyuan8421
    @zhongyanyuan8421 3 года назад +5

    I'm working on some rate limiting stuff now. Although my task is no so complicated as your video topics, it really helped me build up basic concepts. Thanks!

  • @DarkKnight-tt7sz
    @DarkKnight-tt7sz 4 года назад +1

    Of all the videos on system design I have seen, this is by far the best! Please keep making these videos.

  • @howellPan
    @howellPan 5 лет назад +5

    I had to watch it second time around to appreciate the detail and thoroughness. Great work, thanks.

    • @SystemDesignInterview
      @SystemDesignInterview  5 лет назад +1

      Thank you Howell for the feedback and all your other comments! Working on answers to those.

  • @fokkor
    @fokkor 5 лет назад +38

    Probably one of the best videos in system design! You're an awesome instructor! I like the the presentation through animation and thoroughness of your videos. This is how in real world interviews are conducted.

  • @siweizhu7559
    @siweizhu7559 4 года назад +3

    best system design lessons I have seen so far!

  • @guanpenggao1463
    @guanpenggao1463 3 года назад +1

    oh man, this is a really good in depth discussion, love this channel

  • @himani1349
    @himani1349 3 года назад +2

    Your videos are really helpful, probably one of the best resources on the internet. Please make more system design videos around instagram, news feed, WhatsApp, Netflix, google docs etc.

  • @jaewonlee76
    @jaewonlee76 2 года назад +1

    This is the best channel for system design interviews. I watched all videos a week before my onsite interviews and got 4 offers from 4 interviews.

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

    This is so well put together. Absolute legend.

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

    A rate limiting concept cannot be explained better than this!
    Great job sir!

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

    You are really amazing. Thanks for making such a high quality video. Cant believe that you explained all these in 30 mins :)

  • @victoriapuscas7028
    @victoriapuscas7028 3 года назад +2

    More content, please! This is awesome!

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

    Hey, really love the depth in which you cover in the videos, please make some new videos as well. Looking forward for them

  • @djBC10000
    @djBC10000 4 года назад +2

    I automatically like the video before watching it because I know it will be of high quality.
    Thanks again for doing this.

  • @andreyvalverde4780
    @andreyvalverde4780 2 года назад +2

    Please make more videos like this! This is great content!

  • @mohitsamarth
    @mohitsamarth 2 года назад +1

    Wish we had more of your videos on these topics! I dont mind paying for such quality content :)

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

    One of the best and finest content with simple examples. Your way of explanation and content coverage is really amazing. Thank you very much for explaining such valuable concepts in this video.

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

    Excellent video covering all corner cases related to Rate Limiting system design.. Much Appreciated !!

  • @rahulkulkarni1780
    @rahulkulkarni1780 3 года назад +1

    Fantastic video! Keep it going!
    Well structured

  • @user-uskxnfiw729
    @user-uskxnfiw729 4 года назад +5

    Very informative and educational! Exceptional quality as well. Thank you. I subscribed this channel with the hope you will produce more technical videos like this.

    • @SystemDesignInterview
      @SystemDesignInterview  4 года назад +1

      Thanks a lot for the feedback, tillnothingleft! Working on a new video right now.

  • @karthikeyankrishnamoorthy5540
    @karthikeyankrishnamoorthy5540 4 года назад +1

    I admire the deep knowledge that you possess in system design. Your videos are elegant and thorough - simply great! Thanks a lot for sharing the knowledge! Keep sharing!

  • @shashankx
    @shashankx 2 года назад

    dude, you rock! I haven't seen better videos which are so concise and accurate!

  • @MrSatishkumarchakka
    @MrSatishkumarchakka 4 года назад +5

    This is the best series on system design I found on youtube. Excellent presentation. Really appreciate the genuine intentions to share your knowledge. Keep up the excellent work.

  • @zhiguoqin5930
    @zhiguoqin5930 5 лет назад +8

    Pretty high-quality video, thanks!!!

  • @nadezhda-r
    @nadezhda-r 3 года назад +1

    Thank you! This explanation is exactly what I was looking for.

  • @shaleenchauhan1618
    @shaleenchauhan1618 4 года назад +1

    Simple and thorough explanation. Amazing work. Thanks a lot!

  • @RR8401674
    @RR8401674 5 лет назад +6

    Very nice. Please upload more videos. You put together this very nice and I appreciate your time.

  • @bullyellis1
    @bullyellis1 2 года назад +1

    Hand's down best system design study interviews on youtube.

  • @RaviNagubandi
    @RaviNagubandi 4 года назад +1

    One of the best for System Design preparation. Came across lot of new concepts which I'm not aware of. Keep coming!!

  • @shr_q
    @shr_q 2 года назад +1

    Excellent explanation! Thank you so much for doing this. Wish I had discovered this sooner.

  • @iitgupta2010
    @iitgupta2010 5 лет назад +11

    what a master piece man .. awesome .. really loved it.

  • @youngbay6315
    @youngbay6315 4 года назад +2

    Best system design channel. Will recommend to all my friends

  • @muthukumarankothandaraman2371
    @muthukumarankothandaraman2371 3 года назад +1

    23:04 and there's one more elephant in the room!! This man's presentation is highly enjoyable - whatever one runs into in practical system-design problems, this man speaks of it 👌👌👌👌

  • @arundhwajiiith
    @arundhwajiiith 3 года назад +1

    Thanks Mikhail for posting such good qualities content for Rate Limiter.

  • @jisesi
    @jisesi 2 года назад +1

    I miss your new videos bro. This is the best system design channel I have ever seen in all places

  • @drakezen
    @drakezen 5 лет назад +5

    Great videos. I will be looking forward to more updates

    • @SystemDesignInterview
      @SystemDesignInterview  5 лет назад +1

      Thanks, appreciate the feedback! The next video (Distributed Cache Design) will come out by the end of this week.

  • @aditi9059
    @aditi9059 4 года назад +2

    Awesome explanation !!! Please keep up the excellent work and upload more such videos !!!

  • @maximpodkolzin865
    @maximpodkolzin865 3 года назад +1

    Best system design videos by far

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

    Waiting for more such videos. Very good explanation. Thanks!

  • @AnuragSharma-kb9pc
    @AnuragSharma-kb9pc 2 года назад

    one of the best system design discussion, please continue making videos

  • @vedprakash-bw2ms
    @vedprakash-bw2ms 4 года назад +1

    Thank you for such detailed explanation.
    I am just starting in system design journey and its the best I have seen so far.

    • @SystemDesignInterview
      @SystemDesignInterview  4 года назад

      Glad it was helpful! Let me know if you have any questions on this or any other video on the channel.

  • @feirao9027
    @feirao9027 4 года назад +3

    As a new architecture, I think this channel is VERY HELPFUL starting point for me, with all key points.It is useful not only for interviews. I'm looking forward to more patterns explained. Thanks a lot man!

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

    Please add more videos. These are very helpful.

  • @ameyapatil1139
    @ameyapatil1139 4 года назад +1

    This is best ever !!! Please keep adding more.

  • @curiossoul
    @curiossoul 2 года назад +9

    My Lord, I am spellbound by the breadth and depth of various aspects of a design. I just completed reading same design in a very popular design book and it was nothing compared to this. Truly loved it
    Can't believe such precious stuff is free when it can be 5 star content on udemy. Big thanks and looking forward to more videos 🙏

  • @talivanov93
    @talivanov93 4 года назад +1

    Greate video. It helped me that you gave what possible questions the interviews could ask. Thank you.

  • @sarathn47
    @sarathn47 2 года назад

    Amazing video. Please continue the good work!!

  • @nishant07kumar
    @nishant07kumar 3 года назад +1

    Amazing stuff so details and simple to understand. this is something like System Design Master Class :)

  • @zhongbot
    @zhongbot 4 года назад +3

    Took 4 pages of notes from this, very good indeed!

  • @AmitKumar-sj9gr
    @AmitKumar-sj9gr 3 года назад +1

    Premium quality content .. Cheers.

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

    This is GOLD!!! Pure GOLD...

  • @graghukalyan
    @graghukalyan 3 года назад +1

    One of the best SD content i've come across. We are waiting for more content. When is it coming :) ?

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

    Very well Explained, Keep up the good work! Subscribed!

  • @salmanahmed3949
    @salmanahmed3949 4 года назад +1

    Another excellent System Design video... looking forward to your next video.

  • @shivang.agarwal
    @shivang.agarwal 4 года назад +1

    Great work and in depth explenation. you just nailed it.

  • @deepaksoundappan3244
    @deepaksoundappan3244 3 года назад

    awesome job man,, love this video so much... ur content is very precise and no nonsense...

  • @alokprusty6759
    @alokprusty6759 5 лет назад +5

    Great content!
    Please bring more such topics in this channel

    • @SystemDesignInterview
      @SystemDesignInterview  5 лет назад

      Thank you for the feedback! More interview relevant topics to come. Stay tuned!

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

    Awesome content. Your way of explanation is really amazing. Please make more videos on system design.

  • @59sharmanalin
    @59sharmanalin 2 года назад

    A lot of people simply just stuff out the information, loved this guy's engineer's approach to every use case he explained!!
    Although this guy's english is great it's just that the accent is hard to understand at times but subtitles get you covered there!

  • @chitrasomasingh5388
    @chitrasomasingh5388 4 года назад +1

    Thank you for this explanation.
    Please come up with more such system design videos.

    • @SystemDesignInterview
      @SystemDesignInterview  4 года назад +1

      Thank you for the feedback, Chitrasoma! I will surely post more videos on the channel.

  • @kumarc4853
    @kumarc4853 2 года назад

    Very detailed and thorough. Thank you

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

    Excellent explanation. Explaining the concept in terms of interviewer and interviewee helped to grasp the topic in great detail🙂

  • @TheProximator
    @TheProximator 3 года назад +1

    Great video, thank you very much, please add more :)

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

    What happen to this channel? Best videos ever made on System Design. Salute you as a teacher. Please respond for us.

  • @batman4797
    @batman4797 3 года назад +1

    Thank you for the video!

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

    Thank you very much. This is so helpful.

  • @dvm9999
    @dvm9999 3 года назад +1

    Awesome details

  • @nameunknown007
    @nameunknown007 2 года назад +1

    Haha I liked your content and you are funny too, subscribed to your channel.

  • @AndhraKitchenFoods
    @AndhraKitchenFoods 3 года назад +1

    Great video on system design..

  • @serjz.9154
    @serjz.9154 4 года назад +1

    I am amazed by the quality of the material and broadness of topics. I wish your vids get more views and be ranked much higher

    • @SystemDesignInterview
      @SystemDesignInterview  4 года назад +1

      Thank you for the kind words, Serj!

    • @serjz.9154
      @serjz.9154 4 года назад +1

      @@SystemDesignInterview Btw, your vids helped me a lot for the architecture interview section :) I am literally recomennding them everyone I know

    • @SystemDesignInterview
      @SystemDesignInterview  4 года назад

      I am really glad for you, Serj! Thank you a lot for recommending the channel!

  • @ShaktiSinghYoutube
    @ShaktiSinghYoutube 4 года назад +1

    Please publish more system design videos. Awesome explanation.

  • @maniraj1231
    @maniraj1231 3 года назад +2

    Very detailed explination.

  • @hadimajeed1078
    @hadimajeed1078 4 года назад +1

    When I understood the problem statement, I thought of solution - Zookeeper as counter solution but when I continued listening, you made me think of diversified solution (starting from simple solution as you have rightly mentioned). Thank you.

  • @MrMukulj
    @MrMukulj 3 года назад +1

    @MIkhail, pretty awesome work you have done. Thank you!. I wanted to propose a slight change to refill method see if you accept it. 1. private void refill ( int tokens) 2. replace line #3 in refill method with -> currentBucketSize = Math.min(currentBucketSize + tokenToAdd, maxBucketSize + tokens); Also in the allowRequest method first line will change from refill() to refill(tokens);