Define the APIs expected from the system. This is your chance to analyze and define the read and write paths so that you can come up with the high-level design...
Post - api/vi/createURL { longUrl ,userId, timestamp , return short url}
get -> api/v1/getLongUrl{ short url, userId}
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.
Components will be user, write server , read server, database and cache for quering highly asked APIS
Write server - will have convert long to short url
Read server - We can use redis for freq reads else we use Db calls
LRU cache in redis \
We will also have a load balance to ensure system is not overloaded
Deep dive into 2-3 key components. Explain how they work, how they scale, discuss tradeoffs, capacity, and any relevant algorithms or data structures.