- Python - Programming language
- FastAPI - Web Framework
- Pytest - Test Framework
- Allure - Test Report UI
- SQLAlchemy - ORM
- Alembic - Database Migrations
- PostgresSQL - Database
- Starlette-Admin - Database Admin Panel
- Redis - Cache
- OpenTelemetry - Telemetry
- Grafana - Observaiblty
- Tempo - Traces
- Prometheus - Metrics
- Loki - Logs
- Ruff - Linter
- Caddy - Reverse Proxy Server
- pre-commit - Git hooks manager
- python ^3.11
- docker
- poetry
https://localhost/health_check API
https://grafana.localhost Grafana
make run make run_local
python src/main.pypre-commit install
pre-commit autoupdate sudo apt install inotify-tools wget https://github.com/allure-framework/allure2/releases/download/2.33.0/allure_2.33.0-1_all.deb
sudo dpkg -i allure_2.33.0-1_all.deb1 - make run_dev
2 - make test
- domain: All main entities of the system
- application: All business logic
- data: All parts that interact with data, API, Cache, SQL, etc...
- presentation: How the system will be available, API, CLI, message-broker, etc...
- It is using gunicorn because automatic instrumentations does not work with multi workers on uvicorn