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...
# Requests Short URL
POST {
url: long URL
returned_url: short URL
}
# Accesses Short URL
GET https://short_url
302 redirect to 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.
# user requests a shortened URL
api gateway / rate limter takes the request and sends to load balancer
load balancer sends to short url, which could be any number of duplicated services
URL_Shortening_Service generates the new id, stores in database and caching service
Deep dive into 2-3 key components. Explain how they work, how they scale, discuss tradeoffs, capacity, and any relevant algorithms or data structures.