Youtube Design
Problems Storage? Scalability? Web Server? Cache? Web Server * Multiple Web Servers behind load balancer * User Authentication * Sessions * Fetching and Updating Users Data * Video Server * Multiple Web Servers behind load balancer * Recommendation Server * Multiple Web Servers behind load balancer Storage MySQL Database: Lets assume videos have comments and likes and comments do not have likes Table:UserDetails Fields: UserId, Name, Email, Reg Data, Profile Information(Address, Age etc.) Table: User Fields: UserId, Email, Username, Password, Reg Date Table: Video Fields: VideoId, UserId, Title, Description, Size, Video File, LikeCount, ViewCount Table: VideoComments Fields: VideoId, UserId, Comment, Date Table: VideoLike Fields: VideoId, UserId, Date SQL is Geo Replicated Video and Image Storage Thumbnails of different sizes for different screens. CDN - Proxy servers deployed in multiple data centres. Provide Availability, Scalability and Performance Popular videos go on CDN. less pop...