Traffic Volume:
Let us assume the below numbers,
Total Users : 500 million
Daily Active Users (DAU): 50 million
Monthly Active Users (MAU): 330 million
Screen Views per Month: 21 billion
Visits in One Month: 1.6 billion
Total Subreddits: 2 million
These estimations provide a basis for understanding the storage requirements of the Reddit-like platform over a 5-year period, considering user data, subreddit metadata, posts, and comments.
Below are the API which will be required in our design.
By defining these APIs, we provide a clear interface for interacting with different aspects of the Reddit-like platform, enabling developers to build various client applications and integrate with third-party services efficiently.
Below is the class diagram that shows different classes and some of the properties.
By implementing these partitioning and scaling strategies, the system can efficiently handle increasing user activity and data volume while maintaining performance and reliability.
You should identify enough components that are needed to solve the actual problem from end to end. Also remember to draw a block diagram using the diagramming tool to augment your design. If you are unfamiliar with the tool, you can simply describe your design to the chat bot and ask it to generate a starter diagram for you to modify...
Explain how the request flows from end to end in your high level design. Also you could draw a sequence diagram using the diagramming tool to enhance your explanation...
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...
Explain any trade offs you have made and why you made certain tech choices...
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?