Estimate the scale of the system. Consider daily active users, read/write ratio, storage requirements, bandwidth, and any relevant QPS calculations...
Let's assume 100000 daily active users, with 10000000 overall users
One URL is maximum 128 characters long + 8 bytes per unique url (18 quintillion unique values)
We'll need at least 10000000 x 128 +8 bytes of memory ~ 1.5PB of data storage
Let's assume 100:1 read/write ratio
URL create/read/update/delete
URL analytics endpoint
Authrization
Define the data model. Identify the main entities, their attributes, and relationships. Consider the choice of database type (SQL vs NoSQL) and justify your decision based on access patterns...
Deep dive into 2-3 key components. Explain how they work, how they scale, discuss tradeoffs, capacity, and any relevant algorithms or data structures.