20 System Design Concepts Explained in 10 Minutes
2024 ж. 3 Мам.
818 551 Рет қаралды
🚀 neetcode.io/ - A better way to prepare for coding interviews!
A brief overview of 20 system design concepts for system design interviews.
Checkout my second Channel: @NeetCodeIO
🧑💼 LinkedIn: / navdeep-singh-3aaa14161
🥷 Discord: / discord
🐦 Twitter: / neetcode1
📷 Instagram: / neetcodeio
🎵 TikTok: / neetcode.io
0:00 - Intro
0:22 - Vertical Scaling
0:39 - Horizontal Scaling
1:05 - Load Balancers
1:50 - Content Delivery Networks
2:25 - Caching
2:52 - IP Address
3:05 - TCP / IP
2:52 - IP Address
3:58 - Domain Name System
4:41 - HTTP
5:45 - REST
6:05 - GraphQL
6:35 - gRPC
7:22 - WebSockets
7:58 - SQL
8:25 - ACID
8:55 - NoSQL
9:20 - Sharding
9:45 - Replication
10:20 - CAP Theorem
10:50 - Message Queues
#system #design #interview
I love how the topics are connected to one another in a simple and neat way.
dont you mean "neet" way?
can't believe he missed it
In a neet way!
System design concepts explained in the video 👇 1. Vertical scaling - refers to increasing the resources (such as CPU, memory, or storage) of a single machine to improve its performance or handle higher workloads. 2. Horizontal scaling -adding more servers to a system to distribute the workload and increase overall capacity and performance. 3. Load balancer - A load balancer is a network device or software that evenly distributes incoming network traffic across multiple servers or resources to optimize performance and ensure high availability. 4. Content delivery networks - Content Delivery Networks (CDNs) are distributed networks of servers located geographically closer to end users, designed to deliver web content efficiently by caching and serving it from nearby locations 5. Caching - Caching is the process of storing frequently accessed data or content in a temporary storage location (cache) to improve retrieval speed and reduce the need for repeated requests 6. Internet Protocol Address - An IP address is a unique numerical label assigned to each device connected to a computer network 7. TCP - TCP (Transmission Control Protocol) is a communication protocol that ensures reliable, connection-oriented transmission of data by dividing it into smaller packets, numbering them, and reassembling them at the receiving end. 8. DNS - DNS (Domain Name System) is a decentralized naming system that translates human-readable domain names into IP addresses 9. HTTP - HTTP (Hypertext Transfer Protocol) is a protocol that governs the communication between web browsers and servers, allowing for the retrieval and transfer of web pages and resources over the internet. 10. REST - REST (Representational State Transfer) is an approach to designing web services that uses standard HTTP methods and URLs to facilitate communication between clients and servers. 11. GraphQL - GraphQL is a query language for APIs that provides a flexible and efficient way for clients to request and retrieve data from servers by allowing them to specify exactly what data they need. Using single query it can fetch multiple resources without overfetching as well. 12. gRPC - gRPC (Google Remote Procedure Call) is an open-source framework that enables efficient communication and interoperation between services by defining the interface and data contracts using Protocol Buffers and facilitating bi-directional streaming and error handling. 13. web sockets - WebSockets is a communication protocol that provides full-duplex, real-time, and bidirectional communication between a client and a server over a single, long-lived connection.WebSockets can be used in applications such as chat systems or real-time collaboration tools, where instant and continuous data exchange between clients and servers is required. 14. SQL - SQL (Structured Query Language) is a programming language used for managing and manipulating relational databases, allowing users to perform tasks such as querying data, defining database structure, and modifying data records. SQL is considered to use when fast retrieval of data is needed 15. ACID compliance - ACID (Atomicity, Consistency, Isolation, Durability) compliance is a set of properties that ensure reliability and integrity in database transactions, guaranteeing that they are executed reliably, consistently, and without interference. 16. NoSQL databases - NoSQL (Not Only SQL) databases are a class of databases that provide flexible, schema-less data models and horizontal scalability, making them suitable for handling large volumes of unstructured or semi-structured data. 17. Sharding - Sharding is a technique in database management where data is horizontally divided and distributed across multiple servers or nodes to improve performance, scalability, and load balancing. 18. Replication - Replication is the process of creating and maintaining identical copies of data across multiple servers or nodes, providing redundancy, fault tolerance, and improved data availability in distributed systems. 19. CAP thoerem - The CAP theorem states that in a distributed system, it is impossible to simultaneously guarantee consistency, availability, and partition tolerance, and therefore, trade-offs must be made between these three properties. 20. Message Queues - Kind of like databases because they have durable storage. They can be replicated for redunduncy or sharded for scalability. This can be used in task distribution and workload decoupling.
Thanks Brother
Thanks man! God bless you
Thanks man :)
You fucking legend. I was going to make some notes. You saved me time. Cheers
HOLY BASED
5:30 years and years of watching KZhead videos and this has to be the most compelling way of asking for a sub yet, I would've subscribed had I not been subscribed already.
Well done! Very digestible explanation with great motion graphics to help illustrate!
Oh. My. Gosh. This is THE most concise video about Systems design I’ve seen. All this fragmented things I’ve heard finally make sense together. Thank you 🙏
Crisp & clear content. You were able to cover most of the important topics in just 10 min. Nice keep up the good work.
Great job, I like how you balance between conciseness and covering just enough details so that people can further learn it if they are interested in a concept
This is so well put together. So clear, concise and great graphics.
Bowing down to this incredibly well made content. Thank you so much!
Best ever! Compact and interesting intro to system design concepts!!! Excellent!
The most creative way to ask people to subscribe! If I could, I would have subscribed 10 more times. Absolute genius!
So much information in 11 minutes. Thank you for making it happen. Very helpful.
OMG tha was the most direct and simple way to explain a lot of important concepts! Every dev should watch this to understand more about the macro dev world
This is the best short video I have ever seen about the system design. Keep up the good work.
Very good summary of different but related concepts. I wish there were videos like this when I was starting as a Junior Dev 😯
Most valuable 10 mins was spend! No second was wasted. kudo to you!
i can see my years learning web in 10 minutes. very well made content and great explanation.
OMG I loved the video, so well explained in a short amount of time. The perfect combination 😎❤️
CS590 Software Architecture summarized in 10 mins, awesome...this was definitely the most bulky course and you did way better than my professor in explaining
Important topics have been updated in just 10 minutes. Thank you for your concise and clear video👍👍👍
Wow! This video is impressively well-crafted, managing to be both concise and thorough simultaneously.
I really loved all the concepts. I'm a front-end heavy full stack developer wanting to upskill in the backend department. These pointers are really helpful. Could anyone point me in the right direction to learn more advanced topics on database designs and it's efficiency?
Man I bought your lifetime subscription and I can say you have a talent to explain complex concepts in a simple language. You should expand your course to more areas - for example Cloud services (AWS, GCP, Azure...) - there are tons of content topics there and there are no content for those topics on youtube in terms of explaining as good as yours. You should do it bro!
Great video, this is exactly what i was looking for to prepare for my interview tomorrow. Thanks!
Thanks! Keep it up, NeetCode!
omg bro this is so much better than all other vids about system interview that I have seen
Great video. It connected some dots for me. Great content thank you
Thank you for this super understandable explanation.
I keep coming back to this, you need more content like this.
Awesome summary, I was actually looking for it.
Clear, concise and precise
This video is the best to just brush up the topics . Thankyou for making this very easy to understand!!!
Thanks for the video. Crystal clear.
Explained in simple and graphical way., that’s awesome!!
The best part is that I am already familiar with most of the concepts mentioned in the video. Still, I didn't realize it fell under the 'System Design' category since I am a self-taught backend developer.
Interesting. This just further proves that frontend and backend really do have a distinct divide. Client side and server side. Client side definitely focusing more on human interaction, server side focusing more on the "motor/engine" of an app.
@@joaquin67 Yea. I had it put to me perfectly by a senior on my team. Backend developers are really just data plumbers. We build all the underground plumbing for data to be moved around. Front end developers build the fancy sinks, toilets, showers, etc... that get the data from the plumbing.
@@amcmillion3 I always love hearing the house analogy further improved as both are equally important. For example, I wish I had more outlets in my apartment that was built in the 80s, and more cabinets for things. Likewise, I wish the plumbing in my 2nd restroom didn't have the hot/cold water temperatures reversed. Backend is the bridge between data and frontend, frontend provides interaction between backend and human. Unfortunately, the human is the only level in the stack that can't always be debugged lol
This is pure gold for beginners! 🙂
im so thankful for this video. i understood so much ❤❤
This is the best system design video i have watched!!
Wow! That took so much knowledge to create such simplicity. Thank you.
This is just gold! Thank you!
Goes to show u really understand the concept when u can explain all the terms so well and easy to understand, all while making connections to each feature! 👍🏼
Wonderful explanation 🙌
Thank you for your efforts. Very helpful.
Should have mentioned queues back when you introduced horizontal scaling since you need it there and people would understand a fundamental use case more clearly.
Somehow I know every concept you had explained Its a good thing tho Love you video keep up the good work❤
The last part summed it up perfectly!
Wonderful concept explanation @NeetCode
Wow man you did a great explanation in very short time.
This was beautiful!
Thank you for making this! Another highly informative video! I am so impressed with your animations. Are you using remotion to make those? Or it is all after effects skills?
This video is very informative, thanks for this high quality video ❤️
thank you NeetCode, enjoy the show
oh my god, i'm halfway through and i just had to stop watching and come here to comments to tell how much i love the video. the way it is structured and how easily and smoothly it takes us from concept to concept, never breaking the flow is just amazing. very well done! thank you SO SO MUCH for putting it out here!
NoSQL is older than relational databases. All DBMSes were NoSQL prior to that Codd paper. All the flavours existed back then, in the late 60s - early 70s - document, hierarchical, graph-based.
Really? Wow I wouldn't have thought so!
Nice and simple... Thank you!
The connection is really helpful. thanks!!
Amazing, this is why I follow you!
Thank you for your hard work!
@@sunset7456 thats much more than 5$ bro 4000/80 is 50 dollars
Bro just dropped 4k 💀
@@Nickator no bro actuallybri dropped class 4..😂😂
Wow! One of the best videos on KZhead
Incredible video man! Thanks for all your effort!
Very Useful content, I loved the Design pattern video also. Had an interview on Friday, They asked about the strategy pattern, I told them how to Make FilterStrategy. 🤣 The round was was supposed to be 1 hour long but ended in half hour. I answered almost all questions. But there is no response from them.
Where did you get filter strategy video in this channel?
@@sunithaarganurkar7486 Search for neetcode design pattern, watch the video, he will explain with code. Pause the video to have better understanding.
how did it go?
did you hear back?
@@spooder5022 Hi, I got the response and cleared all rounds, there was a round with VP after that. The HR is delaying the offer tho, He said he will give the offer last Monday. I called again and again. No response. Meanwhile I got an offer from an Ad Tech company. The process was very smooth interactive interviews. Its giving 30% hike. The above one is a Data Science AI company. I am very confused should I pressurize the other company for offer or go with ad tech.
Thank you so much for such great excellent content, it is so effective and easy to understand, worth it 👍👍😍😍👌👌🙌🙌
May God bless, great educational content.
One of the best videos I see for system design
This is an AMAZING Systems Design video covering all the key components and explaining them very well.
Amazing video! I hate how slow so many videos are and how much fluff they contain. You manage to explain these concepts in SUCH a simple way, which is a truly valuable and rare skill. Also +1 for the 5:29 subscribe button use case.
Brief, great video. I love this!
So much gold nuggets in this concise video. I think its serves really well having gone through your SD course. also, I see what you did there @10:43 😂
Good review to make sure I still know my basics
Thanks! Great video
Outstanding. Subscribed!
Excellent content mate !
Very quick and linked information.
Great way to explain and great visuals
Hey, it was a good and interesting video. Thanks. Writing summary for my understanding. 1. Horizontal scaling is better 2. Load balancers are used to choose which server to interact with 3. CDN are placed across the world, they help in faster delivery of static data. 4. Rest API - standardization of api request 5. Graphql - Ask only the data that required 6. Storage - Relational(Sql), Non relational (mongo) 7. Caching, message queues - Redis, Kafka
Thank you so much, very helpful!
Best video I've seen in some time 😁👌🏽
This is great 💯 Thanks ❤️
Yay! With NeetCode, I can finally jump from a trainee-level to a senior-level in just 11 minutes! But wait, where can I get the actual physical box? Also, does one need to necessarily add milk, or can I just chew them 20 Must-Known System Design Concepts like potato chips?
I loved your video just in the first 48 seconds Subscribed already!!! Keep it up!!
That's great knowledge 👍, tks for sharing
Summary of whole networking in just 10 minutes ❤❤
You're truly awesome bro
This is phenomenal!
bro no wonder the name of ur channel is neet because the video i've just watched is so neat really. this is the first time visiting ur channel and i hope i find many more amazing video like this one. Thank u
Excellent work!
This is so well made
very well explained and easy to understand . thanks
Thank you so much man
Awesome I learned a lot 😊
This is pretty good 🔥
love it ,nice explanation
Thank you. Its a gem.
Awesome and crisp
Brilliant!
Best video out there!
thank you, this is good!
Wow... Masterpiece🤙
I was following your example, but I had to unsubscribe to see the request.
Why so serious !?
@@atomicgray he's joker irl and just reenacting that scene from the movie calm down
😀
@@user-yx4bt5wq7g why so serious?
Why did you guys unsubscribed
The elegance of his explanations is greatly overpowered by the hilarity of reading "range-based sharding." I thought sharding was bad enough when kept local