(1 million URLs/day * 30 days) = 30 million URLs a day * 8 bytes = 240 million bytes (or 0.24 gigabytes)
(100 million URL redirects/day * 30 days) = 3 billion redirects a day * 500 bytes = 1 trillion bytes (or 1000 gigabytes)
The client will first hit a load balancer which will direct the request to the proper server.
Depending on the type of request, the server will call the URL shortening service or the URL redirection service.
The URL shortening service will store the long URL and create a short URL to store into the database.
The URL redirection service will first check the cache to see if we can find the long URL there. If it's not in there, we will check the database. The cache will handle the high volume of read requests to reduce the load on the database.
URL Shortening Service
URL Redirection Service
Trade Offs/Tech Choices