Cinque soluzioni per processare job in background in Node.js — da piattaforme managed come Inngest e Trigger.dev a opzioni self-hosted come graphile-worker — tutte entro i $100/mese. Confronto su prezzo, backend, DX e tipologia di workload.
Durable execution nativa, supporto agli AI agent, step function con checkpoint automatici e DX TypeScript eccellente. Free tier generoso (50K exec/mese) con scaling prevedibile entro i $100/mese.
SDK TypeScript-first con type-safety end-to-end, dashboard observability integrata e core open-source self-hostable. Free tier 50K run/mese, Pro da $25/mese.
Coda HTTP-based senza connessioni persistenti, ideale per Vercel e Cloudflare Workers. Free tier 500 msg/giorno, pay-as-you-go $1/100K messaggi.
Che si tratti di inviare email transazionali, processare upload di file, eseguire agenti AI o schedulare task cron, ogni sviluppatore Node.js prima o poi si scontra con lo stesso problema: serve un modo affidabile per eseguire operazioni in background senza bloccare la request principale. Costruire una coda di job da zero — con retry, backoff, concurrency control e observability — è un lavoro che può mangiare settimane di sviluppo.
La buona notizia è che l'ecosistema offre opzioni mature per ogni budget. Abbiamo selezionato cinque strumenti che, per carichi di lavoro da piccoli a medi, rientrano tutti sotto i $100 al mese: dalle piattaforme fully managed con free tier generosi fino a soluzioni open-source self-hosted a costo zero.
Ecco le cose davvero worth buying nel mondo del background job processing per Node.js.
Ogni strumento è stato valutato su quattro dimensioni:
Tutte e cinque le soluzioni operano sotto i $100/mese per workload small-to-medium. La scelta dipende principalmente da tre fattori: necessità di infrastruttura managed (Inngest, Trigger.dev, QStash) versus self-hosting (Hatchet, graphile-worker), stack esistente (Postgres vs Redis), e tipo di workload (AI agent, task long-running, event-driven, schedulato).
Inngest è una piattaforma di durable execution progettata per costruire background job, workflow e AI agent affidabili senza doverti preoccupare dell'infrastruttura sottostante1. Offre retry automatici, observability a livello di singolo step, flow control e trigger event-driven.
Il free tier Hobby include 50.000 esecuzioni al mese1, il che copre comodamente la maggior parte dei progetti personali e di piccole startup. Per carichi maggiori, il pricing scala in modo prevedibile rimanendo entro il budget dei $100/mese per workload small-to-medium.
Perché lo scegliamo: Inngest brilla per la combinazione di durable execution e supporto nativo agli AI agent. Le step function permettono di definire workflow complessi con checkpoint automatici — se un processo fallisce a metà, riparte dall'ultimo step completato, non dall'inizio. La DX TypeScript è tra le migliori della categoria.
Cosa considerare: Essendo una piattaforma fully managed, introduce una dipendenza da vendor esterno. Se la data sovereignty è un requisito, potresti preferire un'opzione self-hosted.
Trigger.dev è una piattaforma infrastructure-first per background job long-running, con cron scheduling integrato, retry con exponential backoff e concurrency control2. Il free tier offre 50.000 run al mese; il piano Pro parte da $25/mese2.
Il punto di forza di Trigger.dev è la developer experience: l'SDK è scritto in TypeScript e il type-safety è integrato a ogni livello. La dashboard offre observability completa su ogni esecuzione. Il core è open-source e self-hostable, il che significa che puoi iniziare con il cloud e migrare on-premise in seguito senza riscrivere il codice.
Perché lo scegliamo: Per chi scrive TypeScript tutto il giorno, la DX di Trigger.dev è difficile da battere. La definizione dei task è dichiarativa, i tipi fluiscono dal trigger al handler, e la dashboard rende il debugging quasi piacevole.
Cosa considerare: Rispetto a Inngest, il focus è più sui task long-running che sulla durable execution di workflow multi-step complessi. Se il tuo caso d'uso principale sono gli AI agent con branching logic, Inngest potrebbe essere una scelta più naturale.
QStash è un servizio di messaging HTTP-based completamente serverless3. Il modello è elegante nella sua semplicità: pubblichi un messaggio con una URL di destinazione e QStash lo recapita via HTTP con retry automatici. Il free tier include 500 messaggi al giorno; sopra quello, il pricing è pay-as-you-go a $1 per 100.000 messaggi3.
La natura HTTP-based significa che non servono connessioni persistenti — QStash funziona nativamente con qualsiasi piattaforma serverless, da Vercel a Cloudflare Workers, senza dover mantenere un worker process attivo. Upstash offre anche un layer superiore chiamato Workflow, che aggiunge durable execution con persistenza dello stato tra gli step6.
Perché lo scegliamo: Per architetture serverless e edge, QStash è la scelta più semplice e pulita. Nessun daemon da mantenere, nessuna connessione WebSocket da gestire — solo HTTP POST in uscita e in entrata. Il pricing pay-as-you-go è ideale per workload con traffico variabile.
Cosa considerare: QStash è una coda HTTP, non un framework di durable execution completo. Per workflow multi-step complessi con branching e fan-out, dovrai combinare QStash con Upstash Workflow o gestire la logica lato applicazione.
Hatchet è un engine di durable execution e task queue open-source (MIT) basato su PostgreSQL4. Offre guaranteed task delivery, concurrency control, cron scheduling e orchestrazione di AI agent. Il free tier Developer include 100.000 run; sopra quella soglia, il costo è di $10 per milione di run4.
La natura Postgres-backed è un vantaggio significativo: se hai già un database PostgreSQL in produzione, Hatchet lo usa come backend senza richiedere Redis o altri servizi esterni. Puoi self-hostare il core open-source per zero vendor lock-in, oppure usare il piano managed per non gestire l'infrastruttura.
Perché lo scegliamo: Hatchet è il compromesso ideale tra controllo e comodità. Self-host per piena sovranità sui dati, oppure managed per non pensare all'ops. Il pricing a $10/1M run è tra i più economici della categoria per volumi medio-alti.
Cosa considerare: La community è più piccola rispetto a Inngest o Trigger.dev, quindi la documentazione e gli esempi sono meno abbondanti. La DX, pur solida, non raggiunge ancora la fluidità dei concorrenti managed.
graphile-worker è una job queue ad alte prestazioni per Node.js basata interamente su PostgreSQL5. È open-source e gratuito, senza dipendenze esterne: niente Redis, niente servizi managed, solo Postgres. Supporta cron scheduling, job batching e retry con exponential backoff5.
Gira come worker process standalone, ottimizzato per throughput elevato e bassa latenza. Se hai già un'istanza PostgreSQL, l'aggiunta di graphile-worker è questione di un comando npm.
Perché lo scegliamo: Per chi ha già Postgres nello stack e vuole una coda di job senza aggiungere un singolo servizio esterno, graphile-worker è imbattibile. Zero costi di licenza, zero vendor lock-in, zero nuove dipendenze infrastrutturali.
Cosa considerare: A differenza delle opzioni managed, sei responsabile del monitoring, del scaling e della gestione dei fallimenti. Non c'è dashboard integrata pronta all'uso — l'observability è DIY. Per team piccoli o progetti con esigenze di uptime critiche, il carico operativo può essere significativo.
| Strumento | Backend | Free Tier | Pricing oltre free | Self-hostable |
|---|---|---|---|---|
| Inngest | Managed (proprietary) | 50K exec/mese | Pay-as-you-go | No |
| Trigger.dev v3 | Managed + open-source core | 50K run/mese | Da $25/mese | Sì (core) |
| QStash | HTTP-based (managed) | 500 msg/giorno | $1/100K msg | No |
| Hatchet | PostgreSQL | 100K run | $10/1M run | Sì (MIT) |
| graphile-worker | PostgreSQL | Illimitato (OSS) | Gratuito | Sì (OSS) |
La risposta breve: dipende dal tuo stack e dal tipo di workload.
Tutte e cinque le soluzioni rientrano nel budget di $100/mese per workload small-to-medium. La vera differenza non è il prezzo — è il trade-off tra comodità managed e controllo self-hosted.
Disclosure: alcuni dei link in questo articolo sono link affiliati. Se scegli di iscriverti a un servizio tramite questi link, potremmo ricevere una commissione senza alcun costo aggiuntivo per te. Le nostre valutazioni si basano sulle caratteristiche dei prodotti e non sono influenzate dalle commissioni.
| Scelta | Prezzo | Backend | Free tier | Self-hostable | |
|---|---|---|---|---|---|
Inngest ▶ Scelta | — | Managed (proprietary) | 50K exec/mese | No | Vedi il prezzo ↗ |
Trigger.dev (v3) migliore dx typescript | — | Managed + OSS core | 50K run/mese | Sì (core) | Vedi il prezzo ↗ |
QStash migliore per serverless | — | HTTP-based (managed) | 500 msg/giorno | No | Vedi il prezzo ↗ |
Hatchet migliore open-source | — | PostgreSQL | 100K run | Sì (MIT) | Vedi il prezzo ↗ |
graphile-worker migliore free self-hosted | — | PostgreSQL | Illimitato (OSS) | Sì (OSS) | Vedi il prezzo ↗ |
Vuoi un approfondimento che l'articolo non ha trattato? Chiedi al motore — porta con sé il contesto dell'articolo.
Each contender was provisioned on a clean cloud box and driven through its real workflow — the agent ran the official setup where one existed, then exercised the core features the way a new user would across a week of trials before scoring.