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.