Design Youtube - System Design Interview

  Рет қаралды 269,272

NeetCode

NeetCode

Күн бұрын

🚀 neetcode.io/ - Get lifetime access to every course I ever create!
Lets design the high-level architecture of youtube - similar to how we'd tackle this in a system design interview.
🥷 Discord: / discord
🐦 Twitter: / neetcode1
📷 Instagram: / neetcodeio
🎵 TikTok: / neetcode.io
🐮 Support the channel: / neetcode
⭐ BLIND-75 PLAYLIST: • Two Sum - Leetcode 1 -...
💡 DYNAMIC PROGRAMMING PLAYLIST: • House Robber - Leetco...
0:00 - Intro
0:15 - Background
1:30 - Functional Requirements
1:55 - Non-functional Requirements
5:35 - High-level Design
14:08 - Design Details
17:00 - KZbin video playback example
20:30 - Protocols
design youtube
design netflix
design hulu
design video streaming
system design interview
distributed systems
object storage
vitess
database sharding
#system #design #interview

Пікірлер: 186
@NeetCode
@NeetCode Жыл бұрын
Let me know if you guys want more system design content - I've been wanting to do more and have a lot of ideas, so hopefully you all are interested! Let me know, and feel free to drop a like 👍 =) 🚀 neetcode.io/ - Get lifetime access to every course I ever create!
@criostasis
@criostasis Жыл бұрын
Design a system that pushes notifications with image and/or video to a mobile device using local storage only. No AWS or other external servers allowed. Once you have that done, let Eufy know, bc they f’d up big time 😂
@jondogerman4195
@jondogerman4195 Жыл бұрын
Thanks for the video! Could you recommend any good resources for learning System Design at a level like this? Thanks again
@nikhil_a01
@nikhil_a01 Жыл бұрын
More systems design content sounds great and if you want to do it, then you should!
@wondays654
@wondays654 Жыл бұрын
Commented this on an old video but the api for neetcode is not working. I am unable to sign in with both Google and github.
@AurelianoShowsTheWorld
@AurelianoShowsTheWorld Жыл бұрын
GIVE ME MORE
@ankitsharma_yt26
@ankitsharma_yt26 Жыл бұрын
Thank you Mr beast for system design 😊
@aelam02
@aelam02 Жыл бұрын
Neetcode! I've been applying to jobs for 7 months now since my graduation and struggled to get interviews as my resume was fairly unimpressive. I kept telling myself that I just needed to make sure that I killed any interview I DID get and your channel is what helped me to do just that. Got an offer today that blew my expectations out of the water. Thanks for all you do for all of us and keep it up!
@NeetCode
@NeetCode Жыл бұрын
Congratulations, I'm really happy for you! 🎉
@mayangjsoa
@mayangjsoa Жыл бұрын
are u fired
@VY-zt3ph
@VY-zt3ph Жыл бұрын
Hello Alex, what company you got the offer from??
@aelam02
@aelam02 Жыл бұрын
@@VY-zt3ph Infineon Technologies, a German semiconductor company.
@VY-zt3ph
@VY-zt3ph Жыл бұрын
@@aelam02 u live in Germany brother??
@alexanderschwaighofer1550
@alexanderschwaighofer1550 Жыл бұрын
Awesome Video! Thank you for going into detail and explaining what every part of an example systems architecture is accomplishing and why it's useful. One little nitpick -> (22:00 ) you say KZbin is using TCP which is (for quite some time now) not true anymore. If you look closely at the "client-protocol" used to send the video/audio data (you show that at 18:29 ) you will see that KZbin is using QUIC (HTTP3) which is built on top of UDP instead of TCP. It includes most of the functionality of TCP based HTTP protocol but is technically not using TCP. Just wanted to point that out in case anyone was wondering... Great video though, keep up the neet work!
@j8ahmed
@j8ahmed Жыл бұрын
Bro! Genuinely such eye opening content. Thank you! I am no where near solving problems like this yet but it's really helpful getting exposed to all the realistic considerations involved in designing large scale systems.
@jasonswift7468
@jasonswift7468 Жыл бұрын
Yes, we need it. Hope to have other content appear in the course, such as machine learning, data analysis.
@jessicakoch2331
@jessicakoch2331 4 ай бұрын
seriously your explanations of complex topics are amazing, i’m so glad i found you! I was going cross eyed looking at graphs on Leetcode and their explanations were not helpful at all. Officially subscribed, thank you so so so much!
@victorz7748
@victorz7748 3 ай бұрын
First video recently that I haven't skipped for one second. Great work!
@varshasingh1299
@varshasingh1299 Жыл бұрын
We want more system design video...I love all your videos ❤️
@muzamilahmed3127
@muzamilahmed3127 6 ай бұрын
I think you've missed most points in the watching part. User can change the resolution for that we need multiple videos. Also, different OS will have different file formats like iOS, and android. so if there are 4 resolutions with 3 formats, 4*3=12. Each video should be stored as 12 different videos. Also, we need to store videos in chunks in the cloud storage. We will use main Dash File which contains all the video's information like chunk number, url to that chunk. So, if user skips to the 4th chunk, we'll check the dash file to get the url for the 4th chunk and will make the request for that particular chunk having specific resolution and format.
@bumq5514
@bumq5514 2 ай бұрын
Getting into system design and one of the best vids I've seen so far, great in depth detail
@shuysnoopy
@shuysnoopy Жыл бұрын
These types of videos are such a blessings since it goes deep into a particular usecase or several design descisions which would be rather difficult to gain experience. I can try to learn as many frameworks as possible, do as many projects as possible, but if I dont have such real-world (or close to real-world) lessons like these I might be making mistakes that aren't so visible to the naked eyes.
@themayhemera3046
@themayhemera3046 11 күн бұрын
💯
@imrajsingh8983
@imrajsingh8983 18 сағат бұрын
such beauty looking at all the different high level trade offs and considerations going into designing an application that I have been using daily for the past 15 years
@eswarprasad9773
@eswarprasad9773 Жыл бұрын
The fact that YT isn’t streaming a data source in complete but making HTTP requests to load chunks of video/audio and taping them at the client end BLEW MY MIND !!! my whole life seems like a lie , lol Great video, Thanks mate
@dmytro-kazarinov
@dmytro-kazarinov 7 ай бұрын
You definitely killing it! Love this content!
@akultyagi2818
@akultyagi2818 Жыл бұрын
First i thought why is MrBeast is teaching system design lmaooo
@atNguyen-jg5cp
@atNguyen-jg5cp Жыл бұрын
Awesome video ! Your explaination is easy to understand and it's detailed enough for a video like this. Would be great if you do more videos about system design
@biro2200
@biro2200 Ай бұрын
On the profile picture updating async, you could always solve that by referencing a latest.png and then only updating the object store to change latest.png to reference to the newest image and hence the changes would propagate much faster than updating 1000x video documents
@Driver0077
@Driver0077 3 ай бұрын
amazing explanations! thank you so much for your time
@Souljacker7
@Souljacker7 Жыл бұрын
You are a great teacher. Thanks!
@auroshisray9140
@auroshisray9140 11 ай бұрын
Loved the conciseness of the video
@sameer_sah
@sameer_sah 8 ай бұрын
2:14- Reliablity is defined as ability of a system to work as per specification inspite of extenal (high loads) or internal (faults) factors. If our non-functional requirement is videos to not disappear after upload , we are essentially looking for the system to be durable (not reliable).
@MaxFung
@MaxFung 4 ай бұрын
good point
@wa_ka_su
@wa_ka_su Жыл бұрын
Please more system design content.🙇
@Ogrizkov
@Ogrizkov Жыл бұрын
Thanks for amazing design throughout
@sina7601
@sina7601 Жыл бұрын
You can easily have a user service and store all of the users information including the uploader there, hence you don't need to have it stored alongside the video but just have a userId as reference. This way you have decoupled your systems and follow a more domain driven design and if the user data changes you don't need to go through 1000 of videos just to update a profile picture. At the beginning of every system design interview/document you'd better write down your domains in order to see what are the different services you need before jumping into the design.
@pramalvi
@pramalvi Жыл бұрын
Yes, it can be cached as well.
@MaxFung
@MaxFung 4 ай бұрын
i would prefer a user system as well
@sina7601
@sina7601 Жыл бұрын
Putting huge video files in a queue is too much and very costly and slow but instead you should have it in S3 and then just populate an event to Kafka/RabbitMQ/etc which is consumed by the encoding service that in turn knows it has to fetch video with id: XYZ and start encoding it.
@vyshnavramesh9305
@vyshnavramesh9305 8 ай бұрын
What if the file is fed into a pipeline and split into chunks in the first step and so parallely processed?
@sina7601
@sina7601 8 ай бұрын
@@vyshnavramesh9305 You can utilize multiple threads and splitting them into chunks, however putting video files into a messaging queue is still a bad practice and using a technology for wrong reasons where it doesn't fit. Message brokers are not there to transfer BLOBs.
@VY-zt3ph
@VY-zt3ph Жыл бұрын
Hello Neet. I have a question. in the object oriented design interview course of yours do you have any roadmap planned like what future case studies you will be covering??
@TheDipCompany
@TheDipCompany Жыл бұрын
At split second I thought that mr Beast is actually a software engineer
@redrickTMN
@redrickTMN Жыл бұрын
Great video, thank you!
@shanecoleman2937
@shanecoleman2937 Жыл бұрын
For things like the user profile photo, I wouldn't think you'd store that in each video document. The document should contain a reference to the profile photo. Each user can only have one profile photo, so this is fine.
@saralightbourne
@saralightbourne Жыл бұрын
hasn't the author said that? profile picture is stored in S3, the DB just references it🤔
@harryc5097
@harryc5097 11 ай бұрын
Great video. I like the high level stuff.
@antonchov736
@antonchov736 24 күн бұрын
Thx bro, have only few hours before SD interview, vary usefull)
@brianwang8546
@brianwang8546 Жыл бұрын
Love it! Design Leetcode next please :P
@saranyavivekanandan9044
@saranyavivekanandan9044 Жыл бұрын
Hi, thank you so much for sharing amazing contents!
@saurabhverma1381
@saurabhverma1381 8 ай бұрын
The only video on youtube which actually assumes that "Design KZbin" is a fresh question that was ever thrown at you in an interview and you followed a top-down approach to present a possible design.
@mahendranath2504
@mahendranath2504 6 ай бұрын
nice thank you so much, thanks for sharing the knowledge
@user-xl7wb9pr1g
@user-xl7wb9pr1g Жыл бұрын
@NeetCode Thank you so much for such great contents! Could you please create a system design video on how to design a feature flag/toggle system similar to CloudBees or GitLab ones.
@pierinazaramella967
@pierinazaramella967 11 ай бұрын
Hello! Thanks for the videos, they are very helpful and very good explanations and questions. 11:04, you talk about a load balancer, this was confusing for me, because the diagram is more for architectural design than application design (microservices, bff, kubernetes), is the LB mentioned as a BFF that manages authentication and requests, or is Kubernetes LB more part of microservices? Thank you!
@primetimetran
@primetimetran Жыл бұрын
Hi Neetcode. Thank you for your work. Would you mind sharing/telling us what whiteboarding app you use please? Thank you!
@nazramirez
@nazramirez Жыл бұрын
i was abt to ask same thing! Great vid!
@CookieCurls
@CookieCurls 6 ай бұрын
There’s a lot of issues in this video. Durability instead of reliability, no explanation for how videos get from the object store to the CDN, NoSQL not being the best option for metadata, caching videos at the app server being a bad idea in general when you have a CDN, apparently saving profile picture URLs in the video metadata instead of just making a separate request for user data, etc.
@69k_gold
@69k_gold 2 ай бұрын
Although normalisation isn't expected in NoSQL, it's expected for you to normalize at a collection level in document databases like Mongo. It just makes it easy to deal with points you mentioned, like profile pictures and what not
@tomyao7884
@tomyao7884 Жыл бұрын
Very informative!
@NullNull-qn2ts
@NullNull-qn2ts 2 ай бұрын
you can scale num of encoding workers based on queue backlog length
@mark601
@mark601 Жыл бұрын
For the NoSQL user profile picture topic. Instead updating the picture in every document could it not make sense to store profile picture as a userid.jpg and overwriting this userid.jpg with changes hence the reference always pointing to the same destination and thus never requiring updating of references in multiple documents in case of picture updating?
@S4ND1X
@S4ND1X 4 ай бұрын
Hey there! Thanks for the awesome video, just one question, wouldn't be better to send to the queue, encode and then store, so we only store the encoded video instead of the raw footage? At least in this case where we do not need the raw video anytime after
@zachyang1041
@zachyang1041 5 ай бұрын
this is awesome!! btw, what app/website are you using to write this notes?
@suman_achary_vlogs
@suman_achary_vlogs Жыл бұрын
First comment, lots of love and respect. I solved lots of questions just from your explanations.
@LeetDroid1
@LeetDroid1 Жыл бұрын
Hi NC, please what tools do you use for making your videos? Hardware and Software tools
@yasin_bhojani
@yasin_bhojani Жыл бұрын
Great Video!
@amirsasson10
@amirsasson10 7 ай бұрын
hi, Thanks, amazing video. seems like the they writing into the DB should be done only (or also) after the video is ready for watch - that would be after the encoder finished. no?
@juliancodes
@juliancodes 3 ай бұрын
Awesome content ❤
@johnyeukhonwong830
@johnyeukhonwong830 10 ай бұрын
Even in sport live streaming, to the end users, they are mostly over TCP. TCP gets your congestion control, error code checking, and guarantee ordering delivery. With live stream, sure it sucks when you are 10 seconds behind or when you see the "10x speed up" or "fuzzy screen" when there is a slow network, but ultimately as a viewer we still want to see most of the live video to be played. The client side can throw error when there is a consistent connection error, or skip ahead when it finds itself way behind. With UDP you really don't get those benefits. TCP reusing connection also helps. In practice, almost no one will use udp. There are other proprietary protocols out there, but most of them depend on tcp.
@SamyarBorder
@SamyarBorder Жыл бұрын
Great video 👌
@moestaxx286
@moestaxx286 Жыл бұрын
your very knowledgeable man.. you just inspire me to keep studying tbh . gonna buy the course soon thanks for the video bro 👌🏽
@grcdeepak1
@grcdeepak1 6 ай бұрын
What tool/software do you use for writing/drawing in your videos?
@kirillzlobin7135
@kirillzlobin7135 6 ай бұрын
Very helpful. Interesting details about KZbin using MySQL with Vitess
@praezy200
@praezy200 11 ай бұрын
Once a video is encoded and stored in the object storage (encoded), does the original video need to remain on the raw object storage? If it can be removed, then what is the use case of the raw object storage? Can raw object storage be removed from the design such that uploaded videos go directly to the message queue? Also, I thought sharding can only be implemented for NoSQL databases. If SQL databases can implement sharding, then they can also horizontally scale and I don't see a downside to using them over NoSQL databses?
@danielgordos3803
@danielgordos3803 4 ай бұрын
Message queues aren't generally optimised for holding large blobs of binary data like that - a raw video could easily be 1GB+. Also it would probably have to be placed in the queue in a single operation, while object stores usually offer multipart upload. The queue would probably just hold metadata like videoId, timestamp, videoType etc.
@cpthermes3703
@cpthermes3703 8 ай бұрын
Very nice!
@awesomefj
@awesomefj 9 ай бұрын
Why dont we skip the first object storage? Like the app server directly adds the video to the queue?
@lucky-bj9de
@lucky-bj9de Жыл бұрын
More sys design! Thanks!
@alextech4881
@alextech4881 Жыл бұрын
ce faci frt
@lucky-bj9de
@lucky-bj9de Жыл бұрын
Stau tu
@SnehaSingh-ts7oi
@SnehaSingh-ts7oi Ай бұрын
Since we have to favor availability over consistency, should we use some other database like Cassandra or DynamoDB than MongoDB?
@sgwcollinss
@sgwcollinss Жыл бұрын
Should you in a design interview cover how many app servers you might need based on the DAU
@iqbalibrahim4713
@iqbalibrahim4713 Жыл бұрын
so queue is a place for raw videos waiting their turn to be encoded by the encoding service?
@Hjksivgx
@Hjksivgx 7 ай бұрын
Can we ask for more of a system design stuff from you? Please!
@tannerlin6849
@tannerlin6849 Жыл бұрын
Finally an english tutorial
@Sebastian-zs8cp
@Sebastian-zs8cp 10 ай бұрын
what books do I need to read for this any suggestions? what exactly is the name of the topic i need to research?
@dab
@dab Жыл бұрын
The one thing that stumps me that gets asked all the time are things about updating the table of videos needed to be processed without losing the queue of videos that are to be processed. Any resources about improving the reliability of the encoding processor pipeline?
@pramalvi
@pramalvi Жыл бұрын
You can use distributed message queue with persistence feature like Apache Kafka.
@Meghss
@Meghss 2 ай бұрын
KZbin just suggested me this video!
@sarvajitsankar3276
@sarvajitsankar3276 Жыл бұрын
@neetcode, any plans of launching pricing based on PPP so that it becomes consecutively affordable across all countries as well apart from US? Tried to send mail as well for the same, got no response
@NeetCode
@NeetCode Жыл бұрын
Sorry, I might've missed your email - feel free to send it again.
@sarathchandrareddy3033
@sarathchandrareddy3033 Жыл бұрын
Yes. We really like your videos and content. But purchasing power difference is only making me to stop buying the pro. As a just grad student it's Ton of money other countries.
@NeetCode
@NeetCode Жыл бұрын
@@sarathchandrareddy3033 Feel free to email me!
@droidfever7267
@droidfever7267 Жыл бұрын
@@NeetCode Here in India, its a significant amount of money when converted into Indian Rupees. I really like your videos.
@pinecedar180
@pinecedar180 8 ай бұрын
System design interviews seem to be totally phony. Looks like they might have originated at Google or something and then all other companies started copying this (humans arent smart so they just go with the flow; thats how human culture works). No one ever does system design in their software engineering jobs. There's always teams of people doing this for months. Whatever we can come up in 30 minutes is absolutely useless (was KZbin really designed in 30 minutes by a single person? no), so whats the point of testing something that is useless and something that we will never use in our real jobs? It makes ZERO sense. If something requires some kind of GRE/SAT preparation for something is not practical knowledge and people are trying to "train" for something that is just not used in their real jobs, thats another red flag. If they're trying to test intelligence or problem solving, they should stick to those kinds of questions. This system design stuff is just total BS.
@intelliot
@intelliot 2 ай бұрын
It's a fun conversation starter though
@69k_gold
@69k_gold 2 ай бұрын
Considering they get most of the information from previous assessments, problem solving and technical rounds, this is the place where one can have a true SWE to SWE conversation. What you mentioned about how products are being ideated over weeks or months is true, and that's the point of system design interviews. Your idea will never become an actual product, but rather, this is a good way to test the real-time problem solving ability of a candidate. In theory, there are no wrong answers in system design interviews. Your solution might be flawless or it could have different flaws, but just the fact that you're able to adjust to changing micro-requirements and continue building is a good sign of a promising candidate.
@TheMainManNorthOfEquator
@TheMainManNorthOfEquator 26 күн бұрын
You cant design anything in 30 mins it is way to check how do people think and how much they can provide context and how they deal with trade off
@CWaldman
@CWaldman 24 күн бұрын
It's not about coming up with the ideal design. It's more about seeing if the interviewer understands various concepts and technologies + can communicate them well.
@vhchoang
@vhchoang 13 күн бұрын
It's definitely a skill you must acquire outside of real life software engineering. Almost like studying for an exam
@krateskim4169
@krateskim4169 Жыл бұрын
Awesome
@alloc7260
@alloc7260 Жыл бұрын
I first thought Mr.Beast going to teach us youtube system But then I read the channel name 😅
@muzamilahmed3127
@muzamilahmed3127 6 ай бұрын
10:57 what if we store the only video metadata in the nosql while other data in sql?
@xingyanglan6836
@xingyanglan6836 Жыл бұрын
Why no arrows from metadata to encoded object stores? How metadata go to CDN?
@flowersideOrfa
@flowersideOrfa Ай бұрын
very good video
@LogicTherapy
@LogicTherapy 22 сағат бұрын
Why would you use in-memory over distributed caching for your LRO? I can't wrap my head around that choice.
@AnupamHaldkar
@AnupamHaldkar Жыл бұрын
Mr. Beast in the thumbnail OP!
@SolarFlare090
@SolarFlare090 Ай бұрын
Ok, Hi, now I dont know if you may or may not reply to this, but I finally finished watching this video and would like to appreciate how informative this whole thing is. Now I do have a some questions if thats ok (I deeply apologize). So for starters, 50m uploads a day, is that true? Also, why divide by 100,000? You're also saying that within a min, that the encoder may need time to "encode" one batch of vids, but more may keep coming and coming and our need for more encoders increases? Does it keep growing or does it stop at some point. Now, you're also saying that the actual video is stored within a object store while its meta-data (like title, description, user) is within a database (could it be either sql or nosql)? Are the database/object store within their own server? also, could you define in layman's terms what is a app server, queue, cdn, and load balancer is and mention where they might be? Furthermore, why exactly do we need cache here? Lastly, you said that when we skip ahead within a YT vid, we're making http requests to load more chunks, right? If thats the case, does the same thing occur when we just let the vid play like normal? As I mentioned, I hope you do reply and I have to say how very insightful this whole thing is. Many Thanks.
@danish6192
@danish6192 Ай бұрын
so Mr. Beast was a software engineer so amazed by youtube architecture that he started youtubing
@JShaker
@JShaker 27 күн бұрын
The justification for using NoSQL was kind of lacking.Relational database do just fine with high read throughput. I don't think it's necessarily a bad choice, I'd say either SQL or NoSQL would be fine.
@kirillzlobin7135
@kirillzlobin7135 6 ай бұрын
10:34 Why do we need to update all video documents if we just updated user image. User id will still stay the same
@dibll
@dibll Жыл бұрын
Could you pls design a notification system and ad click event generation system.
@pavelastraukh9905
@pavelastraukh9905 Жыл бұрын
Is it really that better to use NoSQL and have a need to update potentially unlimitted number of records instead of having one user record and update it? I don't see how it is improvement over using relational DB. Yeah, it avoids join but I don't think that it is a big performance hit.
@CookieCurls
@CookieCurls 6 ай бұрын
Yes NoSQL is a bad idea here. The joins are better to get all user data when needed, rewrites are actually somewhat frequent if you actually see how users make immediate changes multiple times on upload, the metadata content fields are going to constantly change and NoSQL could be a very expensive mass update vs SQL, storing profile pic urls in the video metadata is strange when a join could very easily solve this issue, it’s also potentially a many to many relationship… SQL just better here.
@bhagyashri7729
@bhagyashri7729 Жыл бұрын
what kind of Q can handle data in GBs?
@haidernaqvi87
@haidernaqvi87 9 ай бұрын
11:00 if a user updates his profile picture you don’t need to update it anywhere is the video metadata iff you have chose to name the profile picture as [uid].jpg in this manner you will always have the current profile picture
@wesselbindt7589
@wesselbindt7589 2 ай бұрын
If a video takes 1 minute to encode, a worker can encode about 60*24 = 1500 videos a day. 50 million divided by 1500 is about 35000. You're making the math much more complicated than it needs to be in the section on the encoding workers.
@thndesmondsaid
@thndesmondsaid Жыл бұрын
Interesting, why does youtube send chunks of data via HTTP requests instead of using streaming?
@thndesmondsaid
@thndesmondsaid Жыл бұрын
oh wait just got a bit farther, and you're saying sending the chunks via HTTP is streaming. I see. I thought streaming required using a different protocol.
@lasitha6251
@lasitha6251 4 ай бұрын
Bro was using an ad blocker on KZbin. 😎
@yang5843
@yang5843 Жыл бұрын
Appropriate thumbnail as Mr Beast dominates YT
@calvin6507
@calvin6507 Жыл бұрын
oh my god i thought it was another mr beast skit until i saw the channel name
@szefip
@szefip 8 ай бұрын
Why is mr. Beast on the thumbnail? 😂 great vid btw
@ruksads
@ruksads 11 ай бұрын
I guess, video upload should be 5million instead of 50 million. Ratio is 1:100 for uploading and watching users are 5 billion
@asher4312
@asher4312 13 күн бұрын
I have a question people.. Why do we have to update the videos collection when the user updates a profile picture? Since the videos are referenced with the user via the id..and if the user updates their profile picture, only that user document should be updated? And since the video collection has the user via the id..and the next time a request for a video goes in, it will fetch the user via id and the updated profile picture will already be there in the users document. Why have you updated all the videos documents of that user asynchronously.. isn't this a bad practice..can anyone explain to me..I think I am missing something here..
@AllInOnce318
@AllInOnce318 Жыл бұрын
Are you and eggwick (here on YT) the same person? You guys have the same voice :D
@dibll
@dibll Жыл бұрын
Neetcode - why we decided to use NOSQL for storing metadata rather than a relational DB and also how can we handle the use case you briefly touched upon where we don't want to upload the data again in case of a network partition during file upload?
@vyshnavramesh9305
@vyshnavramesh9305 8 ай бұрын
Nosql used since uploads are frequent mandating sharding. But I don't think Mongodb is suitable to KZbin since it isn't good for Availability. There is a downtime when the master is down to elect the next master from slaves. I would prefer Cassandra due to its high availability (leaderless). But Cassandra isn't good when there are read queries on multiple attributes. Hence I would couple Cassandra with Elasticsearch inturn bringing in Fuzzysearch. If it were Netflix, I would have sticked onto a simple Mysql since writes are not frequent and provides enough querying. If fuzzy search required, I would still couple it with ES. (Would never use an ES as a primary db since unreliable).
@dronedistrict4349
@dronedistrict4349 Жыл бұрын
Can you do a video about twitch?
@ranjithragul
@ranjithragul Жыл бұрын
Mr.beast thumbnail is soo good
@challengeyourmind3937
@challengeyourmind3937 Жыл бұрын
Why would you use an LRU cache when the most viewed videos are the most recent? You'd want the opposite of that.
@NeetCode
@NeetCode Жыл бұрын
LRU means the least-recently used will be the first to be evicted - which I think is what you're also saying, unless I'm misunderstanding?
@tal32123
@tal32123 Жыл бұрын
Where is the API gateway in relation to all this... Specifically in relation to the CDN?
@muhammadsarimmehdi
@muhammadsarimmehdi 9 ай бұрын
Why are you using noSQL and not SQL?
Design Twitter - System Design Interview
26:16
NeetCode
Рет қаралды 468 М.
20 System Design Concepts Explained in 10 Minutes
11:41
NeetCode
Рет қаралды 908 М.
Incredible magic 🤯✨
00:53
America's Got Talent
Рет қаралды 67 МЛН
Alat Seru Penolong untuk Mimpi Indah Bayi!
00:31
Let's GLOW! Indonesian
Рет қаралды 16 МЛН
تجربة أغرب توصيلة شحن ضد القطع تماما
00:56
صدام العزي
Рет қаралды 36 МЛН
NERF WAR HEAVY: Drone Battle!
00:30
MacDannyGun
Рет қаралды 54 МЛН
Интервью по System Design. Александр Поломодов (Тинькофф)
1:26:41
How to prepare your Frontend System Design Interview
13:21
I Code It
Рет қаралды 19 М.
NETFLIX System design | software architecture for netflix
51:26
Tech Dummies Narendra L
Рет қаралды 424 М.
Google system design interview: Design Spotify (with ex-Google EM)
42:13
IGotAnOffer: Engineering
Рет қаралды 1 МЛН
How I Mastered System Design Interviews
10:22
Ashish Pratap Singh
Рет қаралды 115 М.
Google Systems Design Interview With An Ex-Googler
59:59
Clément Mihailescu
Рет қаралды 760 М.
YouTube High Level System Design with @harkirat1 !!
35:02
Keerti Purswani
Рет қаралды 89 М.
Software engineer interns on their first day be like...
2:21
Frying Pan
Рет қаралды 13 МЛН
8 Design Patterns EVERY Developer Should Know
9:47
NeetCode
Рет қаралды 1 МЛН
Отдых для геймера? 😮‍💨 Hiper Engine B50
1:00
Samsung Galaxy Unpacked July 2024: Official Replay
1:8:53
Samsung
Рет қаралды 23 МЛН
Как правильно выключать звук на телефоне?
0:17
Люди.Идеи, общественная организация
Рет қаралды 727 М.
Easy Art with AR Drawing App - Step by step for Beginners
0:27
Melli Art School
Рет қаралды 10 МЛН