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...
POST /link - takes long URL, generates short URL, saves to database, and returns short URL
GET /[shortened URL key] - returns 301 code with 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.
Database - NoSQL database for speed since records are very basic and main functionality does not require joins. Shortened URL key is partition key
Server - API with 2 primary endpoints: POST /link and GET /[id]. Post /link accepts a long URL and returns the generated, persisted short URL. GET /[id] takes the key from the short URL and returns the long URL from the database as a 301 response