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...
-> GET /url/ -> RequestBody -> url as Request dto
-> POST /url/ ->
It will get us shortened url from the request string
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.
we will use Springboot with only single service - url-service with PostGreSQL database - urlDb and will create 1 read replica for heavy reading if we have millions of users.
Deep dive into 2-3 key components. Explain how they work, how they scale, discuss tradeoffs, capacity, and any relevant algorithms or data structures.