PD-3 — Infrastructure de files de tâches asynchrones (Redis / BullMQ)
Epic : PD-193 INFRA
1. Objectif
Définir les exigences contractuelles relatives à la mise à disposition d’une infrastructure de gestion de files de tâches asynchrones destinée à supporter les traitements applicatifs utilisant BullMQ.
La présente spécification vise à garantir la fiabilité, la persistance, la visibilité et l’exploitabilité de ces traitements, en cohérence avec les exigences de robustesse, de continuité de service et de confiance utilisateur du produit ProbatioVault.
2. Périmètre / Hors périmètre
Inclus
- Mise à disposition d’un service de gestion de files de tâches asynchrones supportant BullMQ.
- Persistance de l’état des tâches (en attente, en cours, exécutées, en échec).
- Tolérance aux incidents affectant un composant isolé du service.
- Détection et signalement explicites de toute anomalie affectant l’exécution des tâches.
- Supervision opérationnelle du service (état, activité, anomalies).
Exclu
- Définition de l’architecture applicative consommatrice des files.
- Implémentation de la logique métier des tâches.
- Choix d’un fournisseur cloud, d’un hébergeur ou d’un mode de déploiement.
- Optimisation fine des performances applicatives.
3. Définitions
| Terme | Définition |
| Tâche asynchrone | Unité de travail exécutée en dehors du flux synchrone d’une requête utilisateur |
| File de tâches | Mécanisme permettant l’ordonnancement et l’exécution différée de tâches |
| Perte de tâche | Situation où une tâche n’est ni exécutée ni identifiable comme non exécutée |
| Incident | Tout dysfonctionnement affectant l’exécution, l’état ou la visibilité d’une tâche |
4. Invariants (non négociables)
| ID | Règle | Justification |
| INV-01 | Aucune tâche ne doit être perdue silencieusement | Préserver la confiance utilisateur et la complétude des traitements |
| INV-02 | Toute tâche doit avoir un état observable à tout moment | Éviter toute ambiguïté sur l’exécution |
| INV-03 | Toutes les tâches ont un niveau de criticité identique | Exigence uniforme de fiabilité |
| INV-04 | Tout incident est considéré comme bloquant | Absence d’incident tolérable |
| INV-05 | Le rétablissement du fonctionnement nominal doit être automatique | Continuité de service |
| INV-06 | Les garanties sont identiques à court, moyen et long terme | Cohérence des exigences |
| INV-07 | Le service doit rester exploitable sans dépendance à des personnes clés | Robustesse organisationnelle |
5. Flux nominaux
FN-01 — Traitement nominal d’une tâche
- Une tâche est enregistrée dans une file.
- La tâche est exécutée.
- L’état final de la tâche est persistant et observable.
FN-02 — Reprise après interruption
- Une interruption survient pendant l’exécution.
- Le service rétablit automatiquement un fonctionnement nominal.
- Les tâches non finalisées restent identifiables et traitables.
6. Cas d’erreur
| ID | Situation | Comportement attendu |
| ERR-01 | Interruption du service | Aucune perte de tâche, reprise automatique |
| ERR-02 | Échec d’exécution d’une tâche | État explicite et détectable |
| ERR-03 | Perte exceptionnelle liée à un cas de force majeure | Information explicite indiquant une exécution incomplète |
7. Critères d’acceptation (testables)
| ID | Critère | Observable |
| CA-01 | Aucune tâche n’est perdue silencieusement | Audit des états persistés |
| CA-02 | L’état de chaque tâche est consultable | Interface ou métrique observable |
| CA-03 | Toute anomalie est détectable | Signal explicite d’incident |
| CA-04 | Le service se rétablit automatiquement après interruption | Reprise sans action humaine |
| CA-05 | Les procédures manuelles sont documentées et exécutables par un non spécialiste | Documentation vérifiable |
8. Scénarios de test (Given / When / Then)
TC-01 — Exécution nominale
- Given une tâche enregistrée
- When le service fonctionne normalement
- Then la tâche est exécutée et son état final est observable
TC-02 — Interruption et reprise
- Given une tâche en cours d’exécution
- When une interruption survient
- Then la tâche reste identifiable et le service se rétablit automatiquement
9. Hypothèses explicites
| ID | Hypothèse | Impact si faux |
| H-01 | Les traitements applicatifs dépendent d’un mécanisme de files asynchrones | Remise en cause du besoin |
| H-02 | La volumétrie cible est atteignable sans remise en cause structurelle | Refonte nécessaire |
10. Points à clarifier
- Définition précise de la volumétrie cible.
- Modalités exactes de restitution de l’information utilisateur.
- Liste exhaustive des processus applicatifs consommateurs.
Références
- Epic : PD-193 INFRA
- JIRA : PD-3
- Repos concernés : infra / backend