System Design Course for Beginners

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ม.ค. 2025

ความคิดเห็น • 325

  • @GeeksLesson
    @GeeksLesson  4 ปีที่แล้ว +120

    ⭐ Table of Contents ⭐
    Visit: th-cam.com/channels/zYV9nBadlQdBMPP2ZuDvKA.html
    0:00 Intro
    1:20 What are distributed systems
    10:14 Performance metrics for system design
    20:05 Back of envelope math
    36:49 Horizontal vs Vertical scaling
    45:02 Load balancers
    53:25 Caching
    1:10:50 Database Design and Scaling
    1:22:50 System Design Interview Question

  • @the.abhisheksinha
    @the.abhisheksinha 3 ปีที่แล้ว +318

    One of the best videos I have ever seen on System design concepts .... I have 17 years of experience working in IT and 6 years as a solutions Architect but have not seen such a simple yet detailed lecture on System Design.. I will recommend this video to everyone. Cheers.

    • @shivakella
      @shivakella 2 ปีที่แล้ว +5

      Dear Abhishek, your comment has convinced my wandering mind to do this course. Thanks for your comment, never underestimate what your voice can do. All the best for your career sir.

    • @mujahidshaikh5034
      @mujahidshaikh5034 2 ปีที่แล้ว

      Okay thanks, will save it to watch later.

    • @hassansyed6087
      @hassansyed6087 4 หลายเดือนก่อน

      The fact that you have so much experience and you're still back here to reinforce your knowledge speaks volumes to your integrity as a professional. I saved this video just because of you

  • @sid6593
    @sid6593 3 ปีที่แล้ว +16

    I don't like that this video isn't at the top of the search results. This is such a good resource for preparing for interviews

  • @smoothruben3637
    @smoothruben3637 3 ปีที่แล้ว +53

    This is hands down one of the best overviews on the internet! Thank you!

  • @tapanparida3176
    @tapanparida3176 3 ปีที่แล้ว +15

    I wish there was an option for 100s of likes…this is too good to the core.. I would recommend everyone in IT to watch this or this kind of videos…keep up the good work….

  • @geoffl
    @geoffl 3 ปีที่แล้ว +10

    I was hesitant to spend ~2 hours on this. Glad I did.

  • @sunnilabeouf
    @sunnilabeouf 3 ปีที่แล้ว +13

    Never had any thorough exposure to system design, this was really clear and informative. Thank you!

  • @node-ks
    @node-ks 2 ปีที่แล้ว +13

    Thank you so much for this video, I had no idea where to start in terms of learning system design and I'm glad I stopped here first.This was such a clear and concise way of introducing these essential topics and I feel a lot better with my understanding. I am going to rewatch it now and practice my own mock designs. You are incredible, please keep up the good work !

  • @AbhiR-fx6md
    @AbhiR-fx6md 4 หลายเดือนก่อน

    The only foundational video you need to understand all the different components of system design. I reccommend this video to understand the concept and thinking/reasoning behind every component which "Geek's Lesson" has done exceptionally well. There are many videos in TH-cam today, no video with multiple million views addresses end to end like this video. Thanks for creating and sharing this! Very Helpful! I subscribed so that I get the recommendations next time. This video was a hard find.

  • @rohankm
    @rohankm 2 ปีที่แล้ว

    Best system design video on TH-cam. It’s a hidden gem.

  • @diane6863
    @diane6863 2 ปีที่แล้ว +2

    Wow, I have a systems design interview tomorrow, great refresher!!!

  • @cooldudecs
    @cooldudecs 3 ปีที่แล้ว +27

    God bless this timeline. The democratization of information is no longer monopolized by universities

  • @rushabhjshah9138
    @rushabhjshah9138 3 ปีที่แล้ว +29

    wow this was great, if only our schools had professors as good as this guy. Straight to point no BS.

  • @justwanderin847
    @justwanderin847 2 ปีที่แล้ว +3

    Books I liked: The Practical Guide to Structured Systems Design - Meilir Page-Jones; Modern Structured Analysis - Edward Yourdon; Complete Systems Analysis - James & Suzanne Robertson; Developing Structured Systems - Brian Dickinson. Old School

  • @sandeepg
    @sandeepg 2 ปีที่แล้ว +4

    Best way to start refreshing the basic system design concepts. One can individually learn these concepts by going through multiple videos and links, however, this video summarizes everything toegther. Thanks for all the efforts, really appreciate the work :-)

  • @dijoxx
    @dijoxx 3 ปีที่แล้ว +10

    Speaking as someone who successfully passed these interviews and got multiple offers for senior engineer roles from FAANG:
    This video is a much better introduction to system design interviews than perhaps any other I watched on TH-cam. That being said, your actual design for a TH-cam clone is a bit far from what would I would consider acceptable. A few of the problems I can see are:
    - First of all, CDN by itself does NOT just direct you to the nearest web server. That's absolutely not how a CDN works. You may use it to serve videos and other static content, but it is never located in front of a web server and it rarely acts with it.
    - The web server does NOT act as a load balancer. Your load balancers should have been in front of your web servers.
    - For a site like this, you would NOT have monolithic "app server"s as you proposed, but servers with multiple or combined roles that would take care of individual functionalities of your system in a decoupled manner.
    - You likewise need need different queues for different functionalities.
    - You also have not talked about how you would store and cache the data, how you would process the videos, and other nitty gritty.

  • @cambellajoe
    @cambellajoe 2 ปีที่แล้ว +1

    I have worked with Distributed systems for a while, this video puts everything into perspective. Thank you for this.

  • @kingofqwerty
    @kingofqwerty 2 ปีที่แล้ว +8

    This was an excellent lecture. I hope you will adjust the audio better in the future because it was really set too low and I had to max out volume to be able to hear it clearly. Again though, great effort and you really accomplished your objective!

  • @stephena.olujare6512
    @stephena.olujare6512 ปีที่แล้ว +1

    Thank you so much for this tutorial! I just like the fact that you take your time explaining every single terminology without haste. Best tutorial i have ever seen. I am subscribing to your channel real quick.

  • @farmanshaikh777
    @farmanshaikh777 2 ปีที่แล้ว

    This is the 'hello world' of System Designs. hands down brilliant.

  • @awasonia
    @awasonia 2 ปีที่แล้ว

    This Video is the best video I have seen on Distributed Systems Design yet. Thank you very much for this. I look forward to learning more from you.

  • @guez
    @guez 2 ปีที่แล้ว +1

    wow... this is by far the best intro (and a bit more) that I found about System Design, many thanks for time invested doing this... It is really appreciated!

  • @gameplayer1980
    @gameplayer1980 2 ปีที่แล้ว +1

    That library analogy was lovely

  • @souravkar4867
    @souravkar4867 3 ปีที่แล้ว +5

    The is one of the best tutorials on system design concepts. This is not only for beginners but for everyone in IT. Thank You.

  • @yoDQ
    @yoDQ 2 ปีที่แล้ว +4

    Thank you for the review! Broad yet simple and succinct. Suggest increasing your recording audio as it was a bit low for anything other than headphones, even on the highest volume for my iphone 12 max pro.

  • @exaliaos
    @exaliaos 3 ปีที่แล้ว +26

    I wish this video existed before I had Google interviews in 2020, would've helped tremendously! Thanks for the great explanations :)

    • @francischempa6418
      @francischempa6418 3 ปีที่แล้ว +2

      Wish me luck.

    • @jeffb587
      @jeffb587 3 ปีที่แล้ว

      @@francischempa6418 how'd it go?

    • @francischempa6418
      @francischempa6418 3 ปีที่แล้ว +4

      @@jeffb587 I failed right at the first phone interview. Got a another FAANG interview and I am at the second stage now. Wish me luck.

    • @jeffb587
      @jeffb587 3 ปีที่แล้ว +1

      @@francischempa6418 good luck!

    • @francischempa6418
      @francischempa6418 2 ปีที่แล้ว

      Finished System design round last two days. Fingers crossed 🤞

  • @hitman_mz
    @hitman_mz 2 ปีที่แล้ว +3

    Wow! This was a great video. I was looking for a good resource to give a high-level idea about system design for a long time and this was fantastic! Thank you!

  • @ramanamachireddy
    @ramanamachireddy 6 หลายเดือนก่อน

    Thanks for such a nice video on the system design basics. It was conveyed in a simple language and easy to understand. Thanks for your great efforts and continue this great work.

  • @CloudA2Z
    @CloudA2Z 2 ปีที่แล้ว +1

    Thanks for preparing a complete pack of data on system design in a single video :)

  • @renaissanceengineer
    @renaissanceengineer 4 ปีที่แล้ว +30

    big thanks to Geek's Lesson for publishing this on their channel. If you have any suggestions to improve or video topics you'd like to see covered let me know! I plan on posting a lot more tutorials related to system design and architecture, as well as more detailed videos on specific components. So be sure to subscribe if you are interested!

    • @amaryadav8703
      @amaryadav8703 3 ปีที่แล้ว

      You, sir, are an excellent teacher. I wish we had people like you in my college. I have a few questions regarding this video: In the plane example, I think you meant: For covering up availability*, we can have a fleet of airplanes that can be substituted with each other whenever maintenance is required. But the top priority is that each plane must be reliable.... and in the case of Memory estimates for the Instagram-like service, is 500 bytes the request payload size or the response? If it's request payload, which I think it should be, it doesn't make sense to cache what you receive in the request, but rather the data that will be sent back. Please correct me if I'm wrong.
      Apart from that, this is THE BEST video for beginners like me. Thank you so much for this!

  • @jairaj2122
    @jairaj2122 2 ปีที่แล้ว +2

    Wow, as a begineer that was really a nice start(:

  • @thesuperiorman8342
    @thesuperiorman8342 3 ปีที่แล้ว +56

    This is excellent content. The video is packed with information that is presented very clearly and succinctly. I cannot thank you enough. I learnt so much and actually took notes which I don't usually do. The quality is excellent.
    BTW you give a lot of twitter examples. Have you worked for twitter?

  • @edintosh
    @edintosh 2 ปีที่แล้ว

    The best system design overview i've seen. Thank you for making this video.

  • @Evicreates
    @Evicreates ปีที่แล้ว

    Thank you so much for this - im not a software engineer and i wanted to understand basics as a product owner and i got it and was so engaged. Thank you again

  • @devjeff3192
    @devjeff3192 3 ปีที่แล้ว +1

    One of the best System Design courses ever!!! Thank you so much for this lit content

  • @snehabhat4876
    @snehabhat4876 2 ปีที่แล้ว +2

    I like how you sound bored but the tutorial is so informative and easy to understand.

  • @JennyyDang
    @JennyyDang 2 ปีที่แล้ว +6

    I loved this video. Super clear and understandable. I'm a visual learner soo the images 100% helped!

  • @irocx8745
    @irocx8745 3 ปีที่แล้ว +2

    Great intro to System Design for beginners 💯

  • @stevenmorales2501
    @stevenmorales2501 3 ปีที่แล้ว +2

    Wow was this helpful. Thank you for a great course.

  • @dannyelstein
    @dannyelstein 2 ปีที่แล้ว +7

    Excellent video 👍 Well explained and seems thorough. Could be a bit louder - I turned my volume all the way up and it was still a bit too low for me. Very helpful nonetheless.

  • @pratimaadhikari7207
    @pratimaadhikari7207 2 ปีที่แล้ว

    One of the best lectures on system design out there. Please follow this lecture if you are overwhelmed by the number of resources all over TH-cam and the internet. After that focus on solving system design problems. Eventually, you can learn other advanced topics or explore all these components deeper as time goes by. Thank you for creating such a simple yet effective resource. 😃

  • @Ra123Ra
    @Ra123Ra 2 ปีที่แล้ว

    This is the best system design video I’ve seen, fantastic job presenting!

  • @wangsonny8694
    @wangsonny8694 3 ปีที่แล้ว +2

    thanks for sharing this great introduction material!

  • @shreyasatre
    @shreyasatre 2 ปีที่แล้ว +7

    This is an excellent video that explains the basics of a system design. A lot of topics are covered well, and examples are provided about each category to make it easy to understand. Thanks for the lesson!

  • @ahmadmohamad8416
    @ahmadmohamad8416 ปีที่แล้ว +1

    this course is so good, good job

  • @ojogylych1593
    @ojogylych1593 3 ปีที่แล้ว +60

    Super job! If only it was a bit louder. Thanks bro.

  • @asgard2054
    @asgard2054 3 ปีที่แล้ว +6

    Great video! Thought that I knew system design well, but actually I didn't. Tons of interesting information! Thanks for making this video.

  • @mallikbulusu33
    @mallikbulusu33 2 ปีที่แล้ว

    beautiful tour of distributed system design

  • @teakodo
    @teakodo 3 ปีที่แล้ว +2

    got an amazon interview coming up, I will apply this knowledge. Thank you

    • @o-super2744
      @o-super2744 3 ปีที่แล้ว

      How went your interview? :-)

    • @shalsteven
      @shalsteven 3 ปีที่แล้ว

      Did you manage it?

    • @22vah
      @22vah 2 ปีที่แล้ว

      Yeah, we haven't heard back from you... Did you get the job? 👀

  • @justonegoodtrade
    @justonegoodtrade 2 ปีที่แล้ว +1

    Truly this is a such a great primer. Thank you for this!

  • @TheBrainium
    @TheBrainium 2 ปีที่แล้ว +4

    For the memory estimate 32:00, why is the average request size only 500B compared to the Bandwidth estimate at 1.5MB? You mentioned instagram as the example here, so do you not keep the 20% "hot" image data in memory as well?

  • @Danny-we4vz
    @Danny-we4vz 3 ปีที่แล้ว +8

    Man this is a solid lecture, thank you so much!

  • @litingzhang5678
    @litingzhang5678 2 ปีที่แล้ว +1

    I love this introduction, thank you,

  • @lembani
    @lembani 2 ปีที่แล้ว +1

    Awesome and comprehensive lesson! Thanks a lot.

  • @Ozarif
    @Ozarif 3 ปีที่แล้ว +3

    Great video! Very focused to the point.
    Many thanks for you for the great explanations.

  • @lynnalhaimy
    @lynnalhaimy 2 ปีที่แล้ว

    This was the most informative video I have ever watched. Thank you for putting this up!

  • @jasper5016
    @jasper5016 2 ปีที่แล้ว

    This one video is enough for me to crack System Design interview. Thanks a lot

  • @majid_devops
    @majid_devops ปีที่แล้ว +1

    This video is a masterpiece, thanks mate ^_^

  • @samrey8134
    @samrey8134 3 ปีที่แล้ว

    We appreciate you and Love you man.... THANK you. The perfect Tool for my next interview.

  • @viditwalia7790
    @viditwalia7790 3 ปีที่แล้ว

    first thirty minutes i am just following u, but after that i loved it till the end.. , Good job 👌👌

  • @GiridharVedula
    @GiridharVedula 3 ปีที่แล้ว +4

    Awesome, i'm going to make a PPT based on this for my upcoming presentation.

    • @karanrathod1355
      @karanrathod1355 3 ปีที่แล้ว +1

      Do share it if you make it!

    • @GiridharVedula
      @GiridharVedula 3 ปีที่แล้ว

      @@karanrathod1355 drop your email here

  • @Elite54.
    @Elite54. 2 ปีที่แล้ว

    thanks for taking the time to make this great video for us. I really enjoyed watching it. You make a great teacher.

  • @warpathh
    @warpathh 2 ปีที่แล้ว +1

    Nailed it man. Awesome

  • @shashankrao23
    @shashankrao23 2 ปีที่แล้ว

    awesome stuff, 2 hrs felt like 30 mins fine teaching

  • @vaibhavlabhane9979
    @vaibhavlabhane9979 2 ปีที่แล้ว

    Thanks Geek's Lesson for such an amazing video covering all system design concepts !

  • @BrijeshBolar79
    @BrijeshBolar79 3 ปีที่แล้ว +1

    Thanks for this wonderful video. Detailed and easily understandable. Thanks for sharing

  • @VincentStevenson
    @VincentStevenson 3 ปีที่แล้ว +1

    Thank you so much for this video - it has been a great resource to help understand system design.

  • @eshab9777
    @eshab9777 2 ปีที่แล้ว +2

    This was such a great lesson!!!! Thank you so much. Great job at being concise and using simple examples!

  • @antinoise5147
    @antinoise5147 2 ปีที่แล้ว

    Amazing, this video taught me a lot of knowleage. Thank you

  • @cunningham.s_law
    @cunningham.s_law 4 ปีที่แล้ว +9

    this is great content thanks
    it seems like design interviews are going the same route as algo interviews
    because of Goodhart's law these interviews become gamified and lose their initial purpose in evaluating candidates

    • @kailashramakrishnan9793
      @kailashramakrishnan9793 3 ปีที่แล้ว

      Wow I had no idea there was a law like this out there! Thank you

  • @Satyam_singh18
    @Satyam_singh18 4 ปีที่แล้ว +3

    Thank you for this course..

  • @vijayabhaskararaodarsi273
    @vijayabhaskararaodarsi273 3 ปีที่แล้ว

    Capacity estimation for storage is approximate values not absolute numbers. Many thanks
    for the video on system design. Few managers in IT companies stress for absolute values for storage estimation. They are wrong. Thanks for the video, its indeed the great video on system design.

  • @sajeshkariadan4997
    @sajeshkariadan4997 ปีที่แล้ว +1

    Great stuff, thanks!

  • @erixgutierrez6552
    @erixgutierrez6552 4 ปีที่แล้ว +6

    I was just looking for this in google literally a minute before you posted it xD

    • @GeeksLesson
      @GeeksLesson  4 ปีที่แล้ว

      Thanks for your feedback on this system design course. Let us know how does it help you.

    • @mirsahib596
      @mirsahib596 4 ปีที่แล้ว +1

      Dude you just stole my comment
      thank geek's lesson for this awesome upload

  • @boscodomingo
    @boscodomingo 2 ปีที่แล้ว +2

    Great starting guide for beginners. A couple improvements I would make are how slow you speak (had to watch at 2.7x lol) and at 28:20: 1 kilobyte is in fact 1000 B, and 1 Kibibyte (KiB) is 2¹⁰ or 1024 B. 'Kilo' is Greek for thousand, and the SI determines that a kilo of whatever is a thousand units. Also I missed Resiliency as a performance metric for systems. Other than that, ty for such awesome, free information ;)

  • @prateekjoshi199
    @prateekjoshi199 2 ปีที่แล้ว +1

    34:12, 1 MB (Photo) + 500 B (meta data) should be 1.05 MB ?

  • @jordanblount9574
    @jordanblount9574 2 ปีที่แล้ว +1

    Such a good video. Thanks!

  • @abhibhatta1
    @abhibhatta1 2 ปีที่แล้ว

    The TH-cam design at the end was extremely basic and could improve immensely. Other than that it was a really concise and impressive introduction.

  • @KamalMettananda
    @KamalMettananda ปีที่แล้ว +1

    Thanks a lot for the simplification of the ideas, specially on the way the trade offs in distributed systems. Generally people get confused about achieving the higher throughput or keeping 100% consistency while looking for ACID properties and keeping the cost to a minimum. However, I really like the way to explain the trade offs, so that someone picking some special property can understand what are the properties that will be lost during the process.

  • @Aziz-jr3kq
    @Aziz-jr3kq 3 ปีที่แล้ว

    I have an interview about this topic tomorrow, I guess I will survive.
    Thank you very much

  • @ronifintech9434
    @ronifintech9434 2 ปีที่แล้ว

    very structured and straight to the point video! thank you!

  • @sanjaykumaragarwal6033
    @sanjaykumaragarwal6033 2 ปีที่แล้ว +1

    Absolutely great video, loved watching this, please make more such videos on designing distributed systems etc.

  • @silambarasan.ssethu9367
    @silambarasan.ssethu9367 3 ปีที่แล้ว

    Absolutely great video. Shows ur great talent.This is the video every program should see for system design knowledge

  • @Protocat112
    @Protocat112 ปีที่แล้ว

    1:28:40 could we not be using a NOSQL database here instead of a RDMS? Surely strong consistency is not an absolute requirement at the database level (as long as you had some kind of clean up job running, to eventually tidy up the data every so often). And then you'd get all the horizontal scaling benefits of NOSQL. Please correct me if I'm wrong!

  • @genuineprofile6400
    @genuineprofile6400 2 ปีที่แล้ว +3

    System design from the ground up. Absolutely amazing content.

  • @manojbgm
    @manojbgm 3 ปีที่แล้ว +1

    Great video, very easy to understand and examples will help me to remember things very easily.

  • @shponder9510
    @shponder9510 2 ปีที่แล้ว +1

    God bless you sir 👏

  • @tsaregrad
    @tsaregrad 2 ปีที่แล้ว

    Nice video with basics. Regarding TH-cam clone, as an interviewer I would definitely question the idea of putting likes/dislikes into the same table (or even db). This information would be constantly updated, while everything else would almost never update.

  • @tyagianujk
    @tyagianujk 2 ปีที่แล้ว

    Thank you for posting this amazing video!

  • @Daniel-ch52
    @Daniel-ch52 2 ปีที่แล้ว

    Wowwwww, I don't have anything more to say, you are doing such a great job explaining this I'm still shocked

  • @sarahmustafa3561
    @sarahmustafa3561 2 ปีที่แล้ว

    Very fruitful content 👌👌👌
    Truly appreciated!

  • @08Pixel
    @08Pixel 3 ปีที่แล้ว

    Love your video - best explanation I've seen! One thing is would be great if your voice could be louder!

  • @NathanZheng
    @NathanZheng 3 ปีที่แล้ว +2

    Great content! Very clearly explained with good examples! Thank you!

  • @amarshukla07
    @amarshukla07 3 ปีที่แล้ว

    Your explanation was so good and side by side you gave insights as well.
    Thanks

  • @antonfernando8409
    @antonfernando8409 2 ปีที่แล้ว

    pretty cool, as an embedded s/w developer, I dont' see myself in system wide designs like this, so its get this perspective, lot to learn here.

  • @amaryadav8703
    @amaryadav8703 3 ปีที่แล้ว

    In the plane example, I think you meant: For covering up availability*, we can have a fleet of airplanes that can be substituted with each other whenever maintenance is required. But the top priority is that each plane must be reliable.... and in the case of Memory estimates for the Instagram-like service, is 500 bytes the request payload size or the response? If it's request payload, which I think it should be, it doesn't make sense to cache what you receive in the request, but rather the data that will be sent back. Please correct me if I'm wrong.
    Apart from that, this is THE BEST videos for beginners like me.

  • @ronaldomaia
    @ronaldomaia 2 ปีที่แล้ว

    The explanation is really good, complete and concise, I only recommend you to be more energetic when you speak, sometimes it could be distractive if you speak too low

  • @dima.english
    @dima.english 2 ปีที่แล้ว

    Thank you very much dear friend! It is a masterpiece...

  • @niranjanajayachandran2647
    @niranjanajayachandran2647 3 ปีที่แล้ว

    One of the best videos 👍

  • @haocherhong
    @haocherhong 2 ปีที่แล้ว

    1:01:02 I believe you want to pop the cache first so users won't see wrong data if popping failed?
    if you pop after db_update and pop failed, user see cached data which is wrong.
    If you pop first and db_update later, it doesn't matter if db_update failed because they will just have to retrieve data from db and still get the correct result.
    Am I correct?