Cinq solutions de background job processing pour Node.js qui ne ruinent pas votre budget : de Hatchet (Postgres open-source) à QStash (serverless HTTP), en passant par le classique Redis + BullMQ. Comparatif, tiers gratuits et cas d'usage.
File de tâches Postgres open-source avec exécution durable, contrôle de concurrence et cron. Tier Developer gratuit (100K runs), puis 10$/1M runs. Auto-hébergeable pour un coût licence nul.
Queue HTTP serverless idéale pour Vercel/Netlify. Gratuit (1K msgs/jour), puis 1$/100K msgs, Pro à 40$/mo. Zéro infrastructure à gérer.
Moteur de workflows durables sur QStash, survivant aux crashes et redéploiements. Gratuit (2K exécutions/mois), usage-based au-delà. Excellent pour pipelines complexes.
Tout projet Node.js sérieux finit par devoir traiter des tâches hors du cycle request/response : envoi d'emails en masse, génération de PDF, traitement d'images, tâches planifiées (cron), ou workflows multi-étapes qui peuvent durer des minutes voire des heures. Gérer ça avec un simple setInterval ou une queue maison, c'est courir au-devant des problèmes : jobs perdus au redémarrage, pas de retry, pas de visibilité, pas de contrôle de concurrence.
Les outils ci-dessous couvrent tous les besoins courants — files de tâches, exécution durable, cron, retries automatiques — tout en restant sous la barre des 100$/mois. Cette limite élimine d'emblée des solutions comme Temporal Cloud ou AWS Step Functions à grande échelle, dont la facture grimpe vite. Les cinq options retenues offrent toutes des tiers gratuits ou très abordables, avec une montée en charge progressive.
> Transparence : Recomate perçoit une commission sur certains liens sortants. Cela n'influence ni le classement ni les verdicts — nous testons et nous citons.
Hatchet est une file de tâches open-source (licence MIT) construite sur PostgreSQL, avec un moteur d'exécution durable. Elle gère la livraison garantie des tâches, le contrôle de concurrence, le scheduling cron, et survit aux crashes et redéploiements1.
Pourquoi on le choisit en tête : Hatchet combine le meilleur des deux mondes. Côté cloud, le tier Developer gratuit inclut 100 000 runs par mois, puis 10$ par million de runs supplémentaires — largement sous 100$/mois pour la plupart des équipes1. Côté self-hosted, vous pouvez l'auto-héberger sur votre propre Postgres pour un coût nul en licence. Le fait d'être Postgres-native signifie aussi que vos données de tâches vivent dans une base que vous maîtrisez déjà, sans infrastructure supplémentaire à opérer.
Quand l'éviter : Si vous êtes purement sur une architecture serverless (Vercel, Netlify) sans serveur persistant, QStash sera plus naturel.
QStash est une queue de messages serverless basée sur HTTP. Vous publiez un message avec une URL de destination, et QStash le délivre via HTTP avec des retries automatiques2. Pas de connexion persistante, pas de worker à maintenir — votre endpoint reçoit simplement des requêtes.
Le modèle tarifaire est imbattable pour démarrer : gratuit jusqu'à 1 000 messages par jour, puis 1$ pour 100 000 messages, et le plan Pro à 40$/mois2. QStash inclut aussi le scheduling différé, des dead letter queues et le routage basé sur le contenu2.
Idéal pour : les applications Node.js déployées sur Vercel, Netlify ou Cloudflare Workers, où vous n'avez pas de processus long-running. QStash s'intègre naturellement au modèle serverless.
Limite : chaque job est un appel HTTP — pas d'état persistant entre les étapes d'un workflow complexe. C'est là qu'intervient Upstash Workflow (voir ci-dessous).
Upstash Workflow est un moteur de workflows durables construit sur QStash. Il persiste l'état entre les étapes d'un workflow, ce qui permet à des processus multi-étapes de s'exécuter pendant des jours en survivant aux redémarrages de processus, aux crashes et aux redéploiements3.
Ce que ça change : auparavant, enchaîner des étapes en serverless nécessitait de gérer manuellement l'état (en base ou en cache). Upstash Workflow s'en occupe : vous définissez vos steps, et le moteur reprend là où il s'est arrêté en cas d'interruption.
Tarif : gratuit jusqu'à 2 000 exécutions de workflow par mois, puis facturation à l'usage au-delà3. Pour des pipelines de traitement complexes (génération de rapports, onboarding multi-étapes, synchronisation de données), c'est un excellent complément à QStash.
BullMQ est une librairie Node.js open-source qui implémente un système de files robuste basé sur Redis, avec retries, priorités, jobs différés et rate limiting6. Associée à Redis Cloud — le service managé officiel des créateurs de Redis, qui propose un tier gratuit4 — c'est la combinaison la plus répandue dans l'écosystème Node.js.
Pourquoi c'est toujours pertinent : BullMQ est mature, massivement adopté, et bénéficie d'une documentation solide. Redis Cloud en tier gratuit permet de démarrer à zéro coût, avec une montée en charge pay-as-you-go4. Vous gardez le contrôle total sur la logique de vos workers.
Le compromis : c'est une solution self-managed. Vous gérez vous-même la logique de retry, la persistance (Redis est en mémoire par défaut), et le déploiement de vos workers. Pour les workflows longs et durables, Hatchet ou Upstash Workflow offrent des garanties plus fortes.
Railway n'est pas un outil de queue à proprement parler, mais une plateforme d'hébergement backend qui simplifie considérablement le déploiement de workers Node.js5. Avec Postgres et Redis managés intégrés, c'est l'endroit idéal pour faire tourner une instance Hatchet auto-hébergée ou des workers BullMQ5.
Le rôle dans la stack : si vous choisissez Hatchet en self-hosted ou Redis + BullMQ, il vous faut un endroit pour déployer vos workers. Railway remplit ce rôle avec un setup minimal : connectez votre repo, ajoutez un service Postgres ou Redis, et vos workers tournent. La facturation est à l'usage, ce qui la garde abordable pour de petites équipes.
Quand l'utiliser : dès que vous avez besoin d'un processus persistant pour consommer une queue — c'est-à-dire dans tous les scénarios sauf QStash/Upstash Workflow en serverless pur.
| Outil | Hébergement | Tier gratuit | Tarification au-delà |
|---|---|---|---|
| Hatchet | Self-hosted ou Cloud | 100K runs/mois | 10$/1M runs |
| QStash | Serverless managé | 1K msgs/jour | 1$/100K msgs, Pro 40$/mo |
| Upstash Workflow | Serverless managé | 2K exécutions/mois | Facturation à l'usage |
| Redis Cloud + BullMQ | Self-managed | Redis Cloud gratuit | Pay-as-you-go Redis |
| Railway | Plateforme d'hébergement | À l'usage | Pay-as-you-go |
Toutes ces options tiennent sous 100$/mois pour des volumes raisonnables, et la plupart démarrent à zéro coût. Le bon choix dépend de votre architecture — serverless ou non — et du niveau de contrôle que vous souhaitez conserver.
| Choix | Prix | Hébergement | Tier gratuit | Tarification | |
|---|---|---|---|---|---|
Hatchet ▶ Choix | — | Self-hosted ou Cloud | 100K runs/mois | 10$/1M runs | Voir le prix ↗ |
QStash le serverless sans infrastructure | — | Serverless managé | 1K msgs/jour | 1$/100K msgs, Pro 40$/mo | Voir le prix ↗ |
Upstash Workflow l'exécution durable serverless | — | Serverless managé | 2K exécutions/mois | Facturation à l'usage | Voir le prix ↗ |
Redis Cloud le standard de l'industrie node.js | — | Self-managed | Redis Cloud gratuit | Pay-as-you-go Redis | Voir le prix ↗ |
Railway la plateforme d'hébergement pour workers | — | Plateforme d'hébergement | À l'usage | Pay-as-you-go | Voir le prix ↗ |
Une question de suivi que l'article n'a pas traitée ? Demandez au moteur — il connaît le contexte de l'article.
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.