System Context (C4 — Level 1)¶
This diagram defines the system boundary, external actors, and integrations.
flowchart TB
User[User / Viewer] -->|Requests predictions| Web[Time2Bet Web UI]
Web -->|Calls /predict| API[Time2Bet Inference API]
Source[WhoScored.com] -->|Scraping| Airflow[Airflow ETL]
Airflow --> DB[PostgreSQL]
DB -->|Export raw parquet| S3[MinIO S3]
S3 -->|dvc pull| DVC[DVC Dataset Versions]
DVC -->|dvc repro| Train[Training Pipeline]
Train --> MLflow[MLflow Tracking and Model Registry]
API -->|Load model_uri| MLflow
API --> Prom[Prometheus]
Prom --> Graf[Grafana]
DVC --> Evid[Evidently Reports]
API --> Evid
CI[GitLab CI/CD] -->|Build and Deploy| K8s[Kubernetes/Helm]
K8s --> API
K8s --> Airflow
K8s --> MLflow
K8s --> Prom
K8s --> Graf
Actors¶
- User / Viewer: consumes match predictions via web interface.
- System Operator (you / DevOps role): deploys, monitors, and maintains the system.
- External data provider: WhoScored.com as the source of football statistics.
System responsibilities¶
Time2Bet is responsible for:
- scraping and ingesting match data,
- producing versioned datasets suitable for ML,
- training models reproducibly,
- tracking and promoting models,
- serving predictions in production,
- monitoring service and model health.
Non-goals¶
- The system does not guarantee betting profitability.
- It is not designed as a general sports analytics platform.