Requirements


Functional Requirements:


  • Create a short URL for a given long URL.
  • Return the long URL associated with a given short URL.



Non-Functional Requirements:


  • High Availability(高可用) - Low Latency(redirect < 10ms) - Scalability(讀多寫少,100:1) - Durability(資料不能遺失)


API Design

POST /api/v1/urls Body: { long_url: "https://..." } Response: { short_url: "https://short.io/abc123" } GET /{short_url} Response: 302 Redirect → long_url



High-Level Design

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.





Detailed Component Design

Deep dive into 2-3 key components. Explain how they work, how they scale, discuss tradeoffs, capacity, and any relevant algorithms or data structures.