05 / BACKEND · PIPELINE ASINCRONA
Backend documentale pronto per la produzione
Pipeline asincrona di elaborazione documenti costruita perché un job non possa perdersi in silenzio, con i percorsi di errore testati e non solo descritti. Estrazione di fatture come esempio.
Panoramica
Pipeline asincrona di elaborazione documenti costruita perché un job non possa perdersi in silenzio, con i percorsi di errore testati e non solo descritti. Estrazione di fatture come esempio.
La sfida
Nelle code di lavoro i job spariscono quando Redis cade, oppure si ritentano errori che non possono mai riuscire bruciando chiamate a pagamento.
Approccio architetturale
PostgreSQL come fonte di verità, Redis e ARQ come trasporto, worker che rivendica ogni job in modo condizionale nel database.
La soluzione
Documento e job vengono committati prima su PostgreSQL, l'accodamento arriva dopo; i job stallati vengono recuperati senza consumare tentativi; la ritentabilità è una classificazione, non un contatore.
Funzionalità principali
- Job che sopravvivono a un'interruzione di Redis
- Retry solo per errori ritentabili
- Migrazioni testate in CI su PostgreSQL reale
- Soglia di copertura test al 90%
Direzione tecnologica
I fatti
- Copertura test minima 90 %, soglia imposta in CI
- Migrazioni provate su PostgreSQL reale a ogni push
- Job che sopravvivono a Redis giù, retry solo se ritentabile
Prossimo progetto