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...
request:
long URL: string (max 500 characters)
response:
short url: string
expiration_time: string
http status:
201 -> for resource creation successful.
50X -> any server related error
40x -> client error
2.Get /{shorturl} -> if uses gives the short URL, the server finds the long URL and redirects to the long URL
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.
Deep dive into 2-3 key components. Explain how they work, how they scale, discuss tradeoffs, capacity, and any relevant algorithms or data structures.