Тёмный

Master Youtube System Design 

ByteMonk
Подписаться 45 тыс.
Просмотров 14 тыс.
50% 1

Опубликовано:

 

25 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 35   
@NaachWatch
@NaachWatch Год назад
Complex design broken down just to the extent it should be. Very nicely put together and explained.
@mshohag4229
@mshohag4229 Месяц назад
Please make more system design videos.
@1985poorna
@1985poorna 8 месяцев назад
Great video few questions for clarification: 1. since we have high through put why we didnt use something like Kakfa / Flink instances? It would have made the design more fault tolerant and efficient, right? 2. Instead of using a API for orchesting all Microservices, cant we just use a API gateway?
@satyamshivhare
@satyamshivhare 3 месяца назад
This is really amazing man. You are very knowledgeable. I highly appreciate your effort.
@mandingoteck
@mandingoteck 2 месяца назад
Excellent video!!!! I’m shocked by how little views this has. I’m glad I found it.
@ByteMonk
@ByteMonk 2 месяца назад
Thank you for your kind words
@x-gift1496
@x-gift1496 2 дня назад
It was a good explanation thx!
@siyaram2855
@siyaram2855 Год назад
Nailed it 🎉
@SunilKumar-jl6dl
@SunilKumar-jl6dl 4 месяца назад
Assuming that we aren't allowed to use S3 for pre-signed URL for upload/streaming, the question arises how can the system be designed without these AWS services? How to use a distributed object storage? Can you also mention how to achieve service availability & reliability? Also the transcoding part is mentioned at small length here. Considering the number of uploads (in the order of millions), that would be a great piece of discussion on scalability. Using Message Queues, Async workers to run transcoding at scale, the number of workers required all that should be accounted in the design. Streaming using CDN also should be elaborated, cause that is another major requirement in the system design for scalability.
@jwbonnett
@jwbonnett Год назад
Uploading to blob from the UI shouldn't be done, it means anyone can upload what they want to your blob store, not only that checks on the data can't be cheched as local UI can be overriden. Always have an API forward to the blob. if you are getting data, that should be done blob from UI.
@ByteMonk
@ByteMonk Год назад
Thank you for pointing that out! Yes, it is always advisable to have an API that forwards the data to the blob store, this way, one can enforce proper authentication, authorization, and validation checks on the server-side, ensuring that only authorized and validated data is uploaded to the blob store. It adds an extra layer of security and control over the data being uploaded. Uploading directly to a blob from the UI can pose security risks and lack proper validation checks.
@DK-ox7ze
@DK-ox7ze Год назад
If we upload to our server first and then to blob storage then it will take double the time to upload, and it can be quite significant for large files.
@jwbonnett
@jwbonnett Год назад
@@DK-ox7ze No it won't as you can just stream it stright through... Though it seems that you have missed the point!
@davidmataviejo3313
@davidmataviejo3313 Год назад
I stopped watching the video as soon as I saw he was recommending uploading the file from the UI
@chits006
@chits006 Год назад
Nice Video, one clarification, why storage is needed for video watched ? Also CDN, I think for streaming of video, it should goto CDN ?
@dheebanm3207
@dheebanm3207 Год назад
Awesome explanation sir
@techthief3278
@techthief3278 8 месяцев назад
WoW just awesome bro!!
@rushikeswararaopolaki3602
@rushikeswararaopolaki3602 Год назад
Great work
@vova_dev
@vova_dev 6 месяцев назад
Great, thanks! Don't understand total metadata storage required per day. 4:05 Why 1 mln videos power day * 1KB is not enough? You add 100 mln*1KB to it. Why?
@marcogbarcellos
@marcogbarcellos Год назад
Thanks for the great work, helped a lot!
@Badral-Din_S
@Badral-Din_S 4 месяца назад
Thank you
@patrickmotaung5866
@patrickmotaung5866 10 месяцев назад
Does it make sense to store the video in the Object Store, retrieve it from the object store, encode/transcode it and send it back to the object store?? Why not encode it first before sending it to the object store??
@saranshchhibber3431
@saranshchhibber3431 Год назад
Hi great video! Im assuming for search, we would be using something like logstash in the video catalog service, to send the data to Elastic search?
@ByteMonk
@ByteMonk Год назад
Yes, using Logstash in the Video Catalog service to send data to Elasticsearch for search functionality is a common and effective approach. Logstash can be utilized to collect, transform, and enrich data from various sources, including databases like MongoDB or Cassandra, and then send that data to Elasticsearch for indexing and fast search. By integrating Logstash into the Video Catalog service, you can ensure that the video metadata is efficiently indexed and made available for quick and accurate search queries in Elasticsearch. This approach enhances the search capabilities of the system and provides a seamless way to keep the search index up to date with changes in the video metadata.
@srawat1212
@srawat1212 Год назад
Or we can use a message queue so that even other systems can consume. Other consumers could be something like IllegalVideoDetection, Analyser-service, Datalake etc.
@thakurakash321
@thakurakash321 Год назад
Nicely explained! Have few doubts though: 1. What is the difference between metadata service and video catalog? As you mentioned both are used to store and retrieve metadata about the video 2. At timestamp 12:43, you mentioned about pre-signed url generation and then that gets uploaded from ui to s3. Wanted to know why can't we directly upload this pre- signed url in s3 from video uploader service, that might save us some bandwidth and trips over server. Am I missing something here?
@ByteMonk
@ByteMonk Год назад
Thank you for the question. 1. The Video Catalog database is used to store the information about the available videos in the system, such as their title, description, and the user who uploaded them. This database also keeps track of the number of views, likes, and dislikes for each video. The purpose of the Video Catalog database is to provide a quick and easy way to access basic information about the videos without having to query the more complex Video Metadata Database. On the other hand, the Video Metadata Database contains all the information related to the video content, such as the video file location, encoding parameters, resolution, bitrate, and other technical details. This database also keeps track of the various versions and renditions of the video that are available for streaming. The purpose of the Video Metadata Database is to provide a centralized repository of all the video-related information that can be accessed by different microservices in the system.
@ByteMonk
@ByteMonk Год назад
2. A presigned URL is a URL that allows access to an object or a file (in this case, youtube video) in a cloud storage service for a limited period of time without requiring authentication and It is generated by the cloud storage service provider. In future I might do a follow up video on Presigned URLs, but here is how it works at a high level, which should help you understand the flow better. Step 1: The User Requests a Presigned URL When a user wants to upload a video to RU-vid, they first request a presigned URL from RU-vid's server. The presigned URL contains a set of instructions that the user can use to upload the video file. The server generates the presigned URL with the HTTP method parameter set to PUT, which means that the user can upload the video file to the URL using the HTTP PUT method. Step 2: The Server Generates the Presigned URL RU-vid's server generates the presigned URL and sends it back to the user. The presigned URL is a unique URL that is valid for a limited period of time, usually a few minutes. This means that the user must upload the video file to the URL within the specified time limit, otherwise the URL will expire and become invalid. Step 3: The User Uploads the Video File Once the user receives the presigned URL, they can use it to upload the video file to RU-vid's server. The user can use any tool or application that supports HTTP PUT requests to upload the video file. The presigned URL contains a set of instructions that specify the location and format of the video file on RU-vid's server, as well as any other parameters that may be required.
@srawat1212
@srawat1212 Год назад
@@ByteMonk - won't It cause challenges while editing a video's title ? Since both the tables are in different dbs are different how do you do it atomically? Doesn't It makes more sense to cache the details of VideoCatalog table and keep everything in Video Metadata ?
@pmkarthikeyan2382
@pmkarthikeyan2382 Год назад
Hi, can you add a video for food delivery system design like uberEats, DoorDash or Swiggy? @ByteMonk
@ByteMonk
@ByteMonk Год назад
sorry for the late reply, I will work on it. Thank you for the topic!
@AbiolaOgunsakin1
@AbiolaOgunsakin1 Год назад
Great work here. Can you share your contact with me? Thank you.
@ByteMonk
@ByteMonk Год назад
Hello! Our website is going thru an upgrade. Please email here: bytemonksystems@gmail.com
Далее
Instagram System Design | Meta | Facebook
16:38
Просмотров 41 тыс.
Amazon's TPM: The System Design Interview Guide
24:19
А вы знали что металл тонет?
00:32
ITZY 예지한테 AI 메이크업하기💖 #shorts
00:23
3 лайфхака для УШМ
01:00
Просмотров 234 тыс.
CICD Pipeline | System Design
15:04
Просмотров 12 тыс.
Design YouTube | System Design Interview Prep
26:09
Просмотров 1,7 тыс.
System Design Concepts Course and Interview Prep
53:38
Просмотров 370 тыс.
Scale an App to Millions of Users - System Design
45:51
System Design: Design a URL Shortener like TinyURL
16:00
А вы знали что металл тонет?
00:32