Total Memory Requirement ≈ 98.4 GB
NoSQL
user:
{ userId, username, email, avatarURL, lastActive, sessionId}
stream:
{ streamID, streamName, timestamp, duration, status(live/offline), hostUserId, viewCount, starttime }
interaction:
{ reactionID, streamID, timestamp, userId, reactionType (enum)}
see diagram, connect CDN to websocket server.
Dig deeper into 2-3 components and explain in detail how they work. For example, how well does each component scale? Any relevant algorithm or data structure you like to use for a component? Also you could draw a diagram using the diagramming tool to enhance your design...
used redis pub/sub channel here for fast interaction during streams.
Try to discuss as many failure scenarios/bottlenecks as possible.
What are some future improvements you would make? How would you mitigate the failure scenario(s) you described above?