System Design — Tiny URL
Product Requirements
P1: Create short URL with full URL as input.
P1: Get/Redirect to full URL with short URL as input.
P2: Short URL expiration time.
Non-product Requirements
P1: Performant — short URL should be as fast as full URL, which means look up and redirect time should be seamless.
P1: Highly available — otherwise all redirects would fail.