Define the APIs expected from the system. This is your chance to analyze and define the read and write paths so that you can come up with the high-level design...
You need a get API that takes in a long url and returns a short url, Conversely you would also need a get API that takes in a short URL and returns the associated long URLS, For these 2 apis, we can return them in an encrypted json format, Additionally, when a URL is first converted to a short URL there is a separate post API, this stores both URLs in the DB layer where there is a mapping/relation, There also must be APIs for security/verification for all API endpoints
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.
We would have a backend relational DB like SQL server used to store our short urls, long urls, their relationship/mapping, and basic verification - APIs would be used when saving from UI, calling data from UI, and for user functionality - They would return the data to the UI
Deep dive into 2-3 key components. Explain how they work, how they scale, discuss tradeoffs, capacity, and any relevant algorithms or data structures.
We would have multiple servers scaled horizontally to mitigate and bottlenecks adding/removing servers when necessary, we would use a reverse proxy as a load balancer to direct traffic, this ensure reliability and redudancy for our system