Комментарии:
Why dont we skip the first object storage? Like the app server directly adds the video to the queue?
Ответить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.
Ответитьwhat books do I need to read for this any suggestions? what exactly is the name of the topic i need to research?
ОтветитьGreat video. I like the high level stuff.
ОтветитьLoved the conciseness of the video
ОтветитьI guess, video upload should be 5million instead of 50 million. Ratio is 1:100 for uploading and watching users are 5 billion
Ответить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?
I almost clicked on don't recommend channel, seeing that hyped face of that idiot lol😂
ОтветитьShould you in a design interview cover how many app servers you might need based on the DAU
ОтветитьThank you Mr Beast
ОтветитьWhy no arrows from metadata to encoded object stores? How metadata go to CDN?
Ответить@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.
Ответить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?
Ответить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.
Ответитьso queue is a place for raw videos waiting their turn to be encoded by the encoding service?
Ответить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.
ОтветитьHi NC, please what tools do you use for making your videos?
Hardware and Software tools
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
ОтветитьGreat video 👌
ОтветитьNice clickbait
ОтветитьWhere is the API gateway in relation to all this... Specifically in relation to the CDN?
ОтветитьI'm not sure where you got the 100k, but the actual number you'd be looking for is 86400 - 24 * 60 * 60. But that doesn't make for easy math. Just saying though.
ОтветитьThanks for amazing design throughout
Ответить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.
Ответить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.
Ответить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??
Ответить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.
ОтветитьThe thumbnail has uncanny similarity with Mr. Beast. I wonder why. mmm ..
ОтветитьHi, thank you so much for sharing amazing contents!
Ответить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?
ОтветитьAre you and eggwick (here on YT) the same person? You guys have the same voice :D
ОтветитьGreat Video!
ОтветитьYou are a great teacher. Thanks!
ОтветитьMr. Beast in the thumbnail OP!
Ответить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?
ОтветитьCould you pls design a notification system and ad click event generation system.
ОтветитьHi Neetcode. Thank you for your work. Would you mind sharing/telling us what whiteboarding app you use please? Thank you!
ОтветитьMrbeast Bait for leetcode. Nice
Ответитьwhat kind of Q can handle data in GBs?
ОтветитьA single load balancer in front of all that? You're dreaming.
ОтветитьPrevious colors were better to demonstrate
Ответить