Skip to content

Trade-offs & Out of Scope

Status: ✅ Current as of May 2026 — see Implementation Status for the full readiness matrix.

A good system design is as much about what you choose not to build as what you do. This page is intentionally honest about limitations and scope decisions.


What is NOT done (and why)

What Why not Reference
Grafana dashboards Prometheus exports 9 metrics; dashboards deprioritised in favour of test coverage completeness for v1.0 demo Monitoring status
Automated model promotion Staging→Production gate is deliberately manual; automation adds operational risk without sufficient operational context for a portfolio project Model Registry
Batch HTTP endpoint DVC batch_inference stage produces parquet output; an HTTP endpoint was not in v1.0 scope Serving status
Feature Store (Feast) Designed in architecture docs; not yet implemented — offline/online parity maintained by column-level contract Features
Real-time streaming Match data is not real-time; batch scraping via Airflow is sufficient for the prediction horizon Architecture choice
Multi-model A/B serving Single champion/challenger registry pattern; A/B routing adds infrastructure complexity outside v1.0 scope Serving

Acknowledged technical debt

  • Integration tests use mocks — no live Celery/MLflow dependency in CI; trade-off for test speed and portability.
  • POST /predict/async/ HTTP route not registered — Celery task, schemas, and polling endpoint exist; HTTP route registration deferred post-v1.0.

What IS done

See Implementation Status for the full operational matrix.