A scalable URL shortener
Under the service
dir, a docker-compose.yaml
file describes all the services needed to run the project
The development services are composed by:
- In memory SurrealDB instance
- Backend service
The service has a Open API Specification describing all the endpoints. A rendered version can be found here
A URL shortener can be implemented in numerous ways, each of than can favor some aspect of the system (scalability, simplicity, cost, ...).
For comparison purposes, this project aims to implement multiple strategies using the rust language and the available database services on the market.
At the moment, only the simplest short url generation strategy was implemented
TODO: explain the long url hash plus random numbers strategy
Distributed increment counter aggregated in the long url hash
Counter associated with the long url, incremented on each short url creation