Skip to content

Architecture Overview

Time2Bet is designed as an end-to-end MLOps system that connects:

  • Data acquisition (scraping + ETL)
  • Versioned datasets (MinIO + DVC)
  • Reproducible ML pipelines (DVC pipelines + Hydra)
  • Experiment tracking & model lifecycle (MLflow tracking + registry)
  • Online/async serving (FastAPI + Celery/RabbitMQ)
  • Observability (Prometheus/Grafana + Evidently)
  • Secure operations (SOPS + age, GitLab CI/CD, Kubernetes/Helm)

This section documents architecture using the C4 model and provides a system-level view of data and control flows.


Design goals

  • Reproducibility first: data, code, configs, and models are versioned.
  • Explicit contracts: data schema, model signature, and API interfaces are defined.
  • Separation of concerns: ingestion, training, serving, and monitoring are decoupled.
  • Production parity: local Golden Path mirrors production deployment logic.
  • Observability by default: metrics and drift signals are treated as first-class outputs.
  • Secure by design: secrets are encrypted at rest and injected at runtime.

  • System Context (C4 L1): actors and boundaries
  • Container View (C4 L2): services and storages
  • Component View (C4 L3): module-level breakdown
  • End-to-End Data & ML Flow: pipeline lifecycle narrative
  • Environments: dependency strategy and runtime layering
  • Security: secrets, access boundaries, and operational controls