A microservice-based URL shortening system designed for scalability and low latency.
The system is decomposed into three independent services to ensure high availability and isolation:
429 Too Many Requests on violation. Configurable via app.rate-limit.* properties.ttlDays field in request). Default TTL is 30 days. Expired links return 410 Gone; a scheduled job purges them from the database daily at 03:00.The project features a full-stack monitoring solution:

The entire system is containerized. You only need Docker to run the project:
# Clone the repository
git clone https://github.com/whflf/url-shortener.git
# Spin up all services and infrastructure
docker-compose up --build
Access Points:
http://localhost:8080http://localhost:8082http://localhost:9090http://localhost:3000 (Credentials: admin / admin)14 commits
Java
91.8%
Python
5.4%
Dockerfile
2.7%
A microservice-based URL shortening system designed for scalability and low latency.
The system is decomposed into three independent services to ensure high availability and isolation:
429 Too Many Requests on violation. Configurable via app.rate-limit.* properties.ttlDays field in request). Default TTL is 30 days. Expired links return 410 Gone; a scheduled job purges them from the database daily at 03:00.The project features a full-stack monitoring solution:

The entire system is containerized. You only need Docker to run the project:
# Clone the repository
git clone https://github.com/whflf/url-shortener.git
# Spin up all services and infrastructure
docker-compose up --build
Access Points:
http://localhost:8080http://localhost:8082http://localhost:9090http://localhost:3000 (Credentials: admin / admin)14 commits
Java
91.8%
Python
5.4%
Dockerfile
2.7%