0025 pas de fallback silencieux dans les pipelines ml
ADR-25 — Pas de fallback silencieux dans les pipelines ML¶
Statut : Décidé (2026-03-26)
Contexte : Les fallbacks silencieux masquent des erreurs de configuration et produisent des résultats faussement corrects. Dans un contexte d'évaluation ML, un faux positif silencieux est pire qu'un crash.
Décision : Tout fallback dans un pipeline ML doit être explicite et observable, ou interdit.
Invariants :
- Un paramètre obligatoire absent → RuntimeError, pas de default implicite
- Une clé de cache manquante pour une donnée critique → RuntimeError, pas de DataFrame vide
- Un mismatch de version → RuntimeError, pas un warning ignoré
- Tout fallback toléré DOIT être loggé en WARNING avec la raison et l'impact
- silent fallback = bug
Application :
- Features → fail-fast (ADR-23)
- Feature store session cache → fail-fast (#383)
- Image tag → fail-fast (ADR-3, MUST_BE_SET_BY_CI)
- Config runtime → source unique Helm (ADR-23 infra, #378)