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:


  • List the key non-functional requirements (eg low latency, scalability, reliability, etc.)...


API Design

GetLongURL(urlId)

insertShortURL(Urlid,string longURL, string shortURL)

updateShortURL(urlId, string shortURL)

deleteshortURL(urlId)

GetAllURLs()


High-Level Design



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.