Architecture
The project uses a Layered Architecture with a light microservices approach:
- FastAPI: Handles asynchronous HTTP requests, endpoints, and business logic.
- PostgreSQL: Stores URLs and click metadata persistently.
- Redis: Optional caching or analytics (ready for future enhancements).
- Traefik: Reverse proxy for routing HTTP requests, provides a dashboard for monitoring.
All components are containerized using Docker, orchestrated with Docker Compose, ensuring easy deployment and reproducibility.
Architecture Diagram