List the key functional requirements for the system
List the key non-functional requirements
we are going to design this system with target of 2cr user a day and at the same time maximum of 2000 user request.
as the system is used by so many users we need to have multi server architecture and we also need to have n tier database architecture to recover any database server failer. and need multiple server to handle those simultanous request at the same time.
Estimate the scale of the system. Consider daily active users, read/write ratio, storage requirements, bandwidth, and any relevant QPS calculations...
To make our server more secure we can develop seperate API server to talk with our database this will protect our database by minimizing the database action.
in this case we only few endpoint such as
user/detials
url mapper (to find the main url from generate url)
url_insert(CRUD)
Describe the overall system architecture. Identify the main components needed to solve the problem end-to-end. Use the diagramming tool to create a block diagram.
Define the data model. Identify the main entities, their attributes, and relationships. Consider the choice of database type (SQL vs NoSQL) and justify your decision based on access patterns...
Deep dive into 2-3 key components. Explain how they work, how they scale, discuss tradeoffs, capacity, and any relevant algorithms or data structures.