⭐ Table of Contents ⭐ Visit: ruclips.net/channel/UCzYV9nBadlQdBMPP2ZuDvKA 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
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.
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.
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
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….
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
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 !
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 :-)
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 RUclips 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.
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.
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!
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!
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!
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!
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.
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?
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 RUclips. That being said, your actual design for a RUclips 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.
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
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!
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 RUclips 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. 😃
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!
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 ;)
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?
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.
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.
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.
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.
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
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!
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?
Nice video with basics. Regarding RUclips 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.
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.
⭐ Table of Contents ⭐
Visit: ruclips.net/channel/UCzYV9nBadlQdBMPP2ZuDvKA
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 sound is really baaaad
Thanks 😊
you lmmm.zzz k ?kz
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.
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.
Okay thanks, will save it to watch later.
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
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
This is hands down one of the best overviews on the internet! Thank you!
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….
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
I was hesitant to spend ~2 hours on this. Glad I did.
Never had any thorough exposure to system design, this was really clear and informative. Thank you!
wow this was great, if only our schools had professors as good as this guy. Straight to point no BS.
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 !
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 :-)
Best system design video on RUclips. It’s a hidden gem.
I have worked with Distributed systems for a while, this video puts everything into perspective. Thank you for this.
The is one of the best tutorials on system design concepts. This is not only for beginners but for everyone in IT. Thank You.
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 RUclips 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.
God bless this timeline. The democratization of information is no longer monopolized by universities
Wow, I have a systems design interview tomorrow, great refresher!!!
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.
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!
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!
This is the 'hello world' of System Designs. hands down brilliant.
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!
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!
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.
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.
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?
I wish this video existed before I had Google interviews in 2020, would've helped tremendously! Thanks for the great explanations :)
Wish me luck.
@@francischempa6418 how'd it go?
@@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.
@@francischempa6418 good luck!
Finished System design round last two days. Fingers crossed 🤞
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 RUclips. That being said, your actual design for a RUclips 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.
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
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!
That library analogy was lovely
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 RUclips 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. 😃
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!
The best system design overview i've seen. Thank you for making this video.
One of the best System Design courses ever!!! Thank you so much for this lit content
I loved this video. Super clear and understandable. I'm a visual learner soo the images 100% helped!
Thanks for preparing a complete pack of data on system design in a single video :)
Wow, as a begineer that was really a nice start(:
Great video! Thought that I knew system design well, but actually I didn't. Tons of interesting information! Thanks for making this video.
This is the best system design video I’ve seen, fantastic job presenting!
I like how you sound bored but the tutorial is so informative and easy to understand.
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 ;)
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?
This one video is enough for me to crack System Design interview. Thanks a lot
thanks for sharing this great introduction material!
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.
Man this is a solid lecture, thank you so much!
Wow was this helpful. Thank you for a great course.
Truly this is a such a great primer. Thank you for this!
Great intro to System Design for beginners 💯
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.
This was the most informative video I have ever watched. Thank you for putting this up!
We appreciate you and Love you man.... THANK you. The perfect Tool for my next interview.
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.
Great video! Very focused to the point.
Many thanks for you for the great explanations.
Awesome and comprehensive lesson! Thanks a lot.
This video is a masterpiece, thanks mate ^_^
beautiful tour of distributed system design
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.
This was such a great lesson!!!! Thank you so much. Great job at being concise and using simple examples!
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
Wow I had no idea there was a law like this out there! Thank you
this course is so good, good job
Thanks Geek's Lesson for such an amazing video covering all system design concepts !
thanks for taking the time to make this great video for us. I really enjoyed watching it. You make a great teacher.
awesome stuff, 2 hrs felt like 30 mins fine teaching
I have an interview about this topic tomorrow, I guess I will survive.
Thank you very much
got an amazon interview coming up, I will apply this knowledge. Thank you
How went your interview? :-)
Did you manage it?
Yeah, we haven't heard back from you... Did you get the job? 👀
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!
I love this introduction, thank you,
first thirty minutes i am just following u, but after that i loved it till the end.. , Good job 👌👌
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?
Awesome, i'm going to make a PPT based on this for my upcoming presentation.
Do share it if you make it!
@@karanrathod1355 drop your email here
Wowwwww, I don't have anything more to say, you are doing such a great job explaining this I'm still shocked
Nailed it man. Awesome
Thanks for this wonderful video. Detailed and easily understandable. Thanks for sharing
System design from the ground up. Absolutely amazing content.
Thank you so much for this video - it has been a great resource to help understand system design.
Amazing, this video taught me a lot of knowleage. Thank you
Great stuff, thanks!
very structured and straight to the point video! thank you!
I was just looking for this in google literally a minute before you posted it xD
Thanks for your feedback on this system design course. Let us know how does it help you.
Dude you just stole my comment
thank geek's lesson for this awesome upload
Super job! If only it was a bit louder. Thanks bro.
That's what she said
Absolutely great video. Shows ur great talent.This is the video every program should see for system design knowledge
Absolutely great video, loved watching this, please make more such videos on designing distributed systems etc.
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.
The RUclips design at the end was extremely basic and could improve immensely. Other than that it was a really concise and impressive introduction.
Nice video with basics. Regarding RUclips 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.
Such a good video. Thanks!
Your explanation was so good and side by side you gave insights as well.
Thanks
Great video, very easy to understand and examples will help me to remember things very easily.
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.
Great content! Very clearly explained with good examples! Thank you!
34:12, 1 MB (Photo) + 500 B (meta data) should be 1.05 MB ?
Thank you for this course..
You are welcome
Thank you for posting this amazing video!
I was thinking about studying this topic just yesterday at evening, and today when I open my YT account... BANG. Thank you for posting this.
the best video !! i have been looking for this kind of overview!! many thanks
In RUclips example, where does API gateway fit in ? Would it be in between CDN and webserver or before CDN or anywhere else?
thanks for sharing, super helpful!
Very helpful to understand what goes into system design. Thanks
Thank you .This is so useful.