05 / BACKEND · PIPELINE ASYNCHRONE
Backend documentaire prêt pour la production
Pipeline asynchrone de traitement de documents conçu pour qu'un job ne puisse pas se perdre en silence, avec des chemins d'erreur testés plutôt que décrits. L'extraction de factures sert d'exemple.
Vue d'ensemble
Pipeline asynchrone de traitement de documents conçu pour qu'un job ne puisse pas se perdre en silence, avec des chemins d'erreur testés plutôt que décrits. L'extraction de factures sert d'exemple.
Le défi
Dans les files de travail, les jobs disparaissent quand Redis tombe, ou l'on réessaie des erreurs qui ne peuvent jamais réussir en brûlant des appels payants.
Approche architecturale
PostgreSQL comme source de vérité, Redis et ARQ comme transport, un worker qui réclame chaque job de façon conditionnelle dans la base.
La solution
Document et job sont d'abord validés dans PostgreSQL, la mise en file vient ensuite ; les jobs bloqués sont récupérés sans consommer de tentative ; la possibilité de réessai est une classification, pas un compteur.
Fonctionnalités clés
- Des jobs qui survivent à une panne de Redis
- Réessais uniquement pour les erreurs réessayables
- Migrations testées en CI sur PostgreSQL réel
- Seuil de couverture de tests à 90 %
Direction technologique
Les faits
- Couverture de tests minimale de 90 %, imposée en CI
- Migrations exécutées sur un PostgreSQL réel à chaque push
- Des jobs qui survivent à une panne Redis, retries seulement si pertinent
Projet suivant