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.
Navigating this section¶
- 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