Chapter 14. Designing a URL Shortener Service
We explored the concept of DNS in Chapter 9, noting that it’s easier to remember a website’s URL than its IP addresses—but what about the long URLs? It’s easy to remember the root part of the URL (for example, learning.oreilly.com in https://learning.oreilly.com/library/view/system-design-on/9781098146887), but you can easily forget the long URL. We often embed links in text because that increases the readability.
Another way of sharing long URLs is by shortening them. For example, LinkedIn automatically shortens any URL that is part of a post because this helps increase post readability and user interaction. In microblogging applications like Twitter (now known as X), there is a limit on the number of characters in a single post, so to reduce the length of your text, you can shorten any URLs via some URL shortener service such as TinyURL or Bitly and attach those to the post instead of the full-length versions.
This chapter explores the design of a URL shortener service and discusses how to deploy the system on the AWS cloud. We’ll start our discussion with requirements gathering and expectations from the system. Later, we’ll jump into the details of the system.
System Requirements
You should have a clear goal in mind for the problem you need to solve. From there, the next step to design any system, big or small, is to gather the requirements. These requirements include:
-
Why is this system needed? What is the business use case ...