Problem: This service will provide short aliases redirecting to long URLs. Step 1: Requirement Analysis Understand the the basic core features: 1. create short url from long url. 2. get the long url from the short url. Nice to have feature: 3. will url get expired in certain time? 4. could user define their customized short url? here is some questions need to clarify: 1. How long we need keep the url? (it will have impact on storage, it is very import to understand to how long will the data be if such data will be stored in local storage). 2. Do we allow N : 1 or only 1: 1 mapping? (have impact about algorithm and data storage. Step 2: Estimation Of Resource Usage common resources: data storage || web services: QPS Let's the estimation right now: Assume DAU is about 500M, Create: and one user will create new one item every 5 days. so the total creation per Second will be a. yearly new record: 500M/5 * 365 ~ 50G, new records a. monthly storage: 500M/5 * 100 * 30 = 100M *