Skip to content

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.