a URL shortening repository written in go
- As a user, I need to generate a unique shorter alias of the given URL.
- As a user, I want to browse the correct website via the shortened URL.
- As a user, I should be able to delete a short link generated by the service, given the rights.
- As a user, I want to update the original URL related to the generated one, given the proper rights.
- As a user, I want to set an expiration time for the shortened URL.
- Availability: The service should be highly available because if the service is down, users will not be able to browse the correct website. As a result, the service must be fault-tolerant to keep the service online.
- Scalability: As the number of customers increases, the service must have the ability to scale horizontally.
- Latency: The service should be low latency to provide a smooth experience for users.
- Unpredictability: The shortened URLs generated by the service should be highly unpredictable because of the security.