Retour aux projets

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.

BackendReliabilityOpen source
Concept d'interface · aperçu illustratif — Backend documentaire prêt pour la production
Concept d'interface · aperçu illustratif

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

PythonFastAPIPostgreSQLRedis

Code sur GitHub

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
Lancer un projet

Projet suivant

CommerceAI Agent