Trigger.dev vs Inngest vs QStash: background jobs serverless 2026
background jobs 2026: Trigger.dev vs Inngest vs QStash — task queue untuk serverless
TL;DR
- QStash: Recommended untuk job sederhana — HTTP queue, murah, mudah setup.
- Inngest: Recommended untuk workflow multi-step dengan DX terbaik di kelasnya.
- Trigger.dev: Recommended untuk long-running job kompleks yang butuh durable execution.
Konteks
Di 2026, “serverless” bukan lagi eksperimen — mayoritas startup Indonesia deploy ke Vercel, Cloudflare Workers, atau Railway. Masalahnya: serverless function punya execution time limit (10-30 detik di Vercel, 50ms CPU di Workers). Background job yang dulu berjalan di cron atau worker server sekarang butuh solusi berbeda.
Tiga opsi yang paling sering muncul di radar:
- QStash (by Upstash): HTTP message queue dengan delay, retry, dan scheduling.
- Inngest: Durable workflow engine dengan DX excellent untuk Next.js/TypeScript.
- Trigger.dev: Open-source background job platform dengan focus ke long-running task.
Saya pakai ketiganya di project nyata. Verdict berbeda untuk setiap use case.
Perbandingan cepat
| Kriteria | QStash | Inngest | Trigger.dev |
|---|---|---|---|
| Model | HTTP message queue | Durable workflow engine | Durable job runner |
| Free tier | 500 msg/hari | 50K run/bulan | 5K task/bulan |
| Paid entry | $10/bulan | $25/bulan | $50/bulan |
| Max durasi job | Sesuai receiver (5-15 mnt) | Unlimited (step-based) | Unlimited (native) |
| Self-host | Tidak | Tidak | Ya (v3) |
| DX TypeScript | Manual HTTP | SDK excellent | SDK excellent |
| Cocok untuk Jakarta latency | Baik (Cloudflare edge) | Sedang (worker di cloud) | Sedang (worker di cloud) |
QStash
QStash adalah produk Upstash — perusahaan yang juga bikin Redis dan Kafka serverless. Model QStash sederhana: Anda kirim HTTP request ke QStash endpoint, QStash simpan pesan, lalu deliver ke URL receiver Anda dengan retry otomatis.
Kekuatan utama QStash adalah kesederhanaannya. Setup 15 menit, tidak ada SDK khusus yang wajib (cukup HTTP), dan bisa pakai receiver di Cloudflare Workers yang punya edge di Asia — artinya latency delivery lebih rendah untuk user Indonesia. Free tier 500 message/hari cukup untuk MVP.
Kelemahannya: QStash tidak dirancang untuk orchestration. Tidak ada native concept “step”, tidak ada built-in state antar pesan, tidak ada visual dashboard untuk trace workflow. Kalau job Anda perlu kirim email → tunggu konfirmasi → kirim notif → update DB, Anda harus orchestrate sendiri dengan state external (Redis, DB). Billing juga bisa naik cepat di volume tinggi karena charge per message.
QStash paling masuk akal untuk: kirim email transaksional, webhook fanout, scheduled task sederhana (hapus data expired tiap malam), atau trigger job singkat yang tidak perlu coordination.
Inngest
Inngest adalah durable workflow engine dengan DX terbaik dari ketiga pilihan ini. SDK TypeScript-nya sangat ergonomis — Anda define function dengan inngest.createFunction, tentukan trigger (event atau cron), lalu tulis step-by-step logic dengan step.run(). Setiap step otomatis di-checkpoint: kalau step ke-3 gagal, Inngest retry dari step ke-3, bukan dari awal.
export const onboardingFlow = inngest.createFunction(
{ id: "user-onboarding" },
{ event: "user/signup" },
async ({ event, step }) => {
await step.run("send-welcome-email", () => sendEmail(event.data.email));
await step.sleep("wait-1-day", "1d");
await step.run("send-tips-email", () => sendTipsEmail(event.data.email));
}
);
Ini adalah DX yang genuinely menyenangkan. Tidak ada queue management manual, tidak ada retry logic custom, tidak ada state database tersembunyi yang harus Anda maintain.
Kelemahannya adalah billing model per-step. Workflow onboarding 5-step di atas = 5 function run dihitung. Untuk volume tinggi dengan workflow kompleks, biaya bisa naik lebih cepat dari yang Anda bayangkan. Inngest juga cloud-only, tidak ada self-host option — masalah untuk use case data residency. Dan karena Inngest bergantung pada webhook ke worker Anda, kalau worker di Vercel US, semua execution terjadi di US.
Inngest paling masuk akal untuk: onboarding flow, billing workflow, retry-heavy integration, atau project Next.js/TypeScript yang mau background job dengan zero infrastructure overhead dan DX premium.
Trigger.dev
Trigger.dev adalah satu-satunya dari ketiga ini yang punya fokus eksplisit pada long-running job. Di Trigger.dev v3, Anda bisa jalankan job yang berjalan berjam-jam — ingest file besar, proses video, run AI pipeline panjang — tanpa khawatir timeout. Ini bukan fitur opsional, ini adalah proposition utama mereka.
SDK Trigger.dev juga TypeScript-first dan ergonomis, dengan concept tasks yang mirip Inngest tapi dengan execution model lebih kuat untuk durasi panjang:
export const processUpload = task({
id: "process-large-upload",
run: async (payload: { fileUrl: string }) => {
const file = await downloadFile(payload.fileUrl);
const result = await runHeavyProcessing(file); // bisa 10+ menit
await saveResult(result);
},
});
Keunggulan lain: self-host penuh via Docker Compose. Untuk fintech Indonesia yang butuh data di server lokal atau comply dengan regulasi OJK, ini adalah differentiator yang tidak dimiliki Inngest atau QStash. Dashboard Trigger.dev juga solid — bisa lihat real-time execution log, retry history, dan trace per task.
Kelemahannya: free tier paling ketat (5K task/bulan), dan paid plan entry lebih mahal ($50/bulan vs $25 Inngest). DX juga sedikit lebih verbose dari Inngest. Untuk job sederhana yang selesai dalam 30 detik, Trigger.dev adalah overkill.
Verdict
Pakai QStash kalau:
- Job Anda sederhana (kirim email, trigger webhook, scheduled delete)
- Budget sangat terbatas dan volume rendah
- Receiver bisa di Cloudflare Workers (latency ke Jakarta lebih baik)
- Tidak butuh step coordination — satu pesan, satu aksi
Pakai Inngest kalau:
- Anda butuh multi-step workflow dengan state tersimpan
- Stack adalah Next.js/TypeScript dan mau DX terbaik
- Job selesai dalam hitungan menit (bukan jam)
- Cloud-only bukan masalah dan tidak ada regulasi data residency
Pakai Trigger.dev kalau:
- Job bisa berjalan lebih dari 5 menit (AI pipeline, file processing, data ingestion)
- Butuh self-host untuk data residency atau compliance
- Team familiar dengan open-source tooling dan mau kontrol penuh
- Budget untuk $50/bulan tersedia
Konteks Indonesia spesifik: Untuk startup early-stage yang deploy ke Vercel dan butuh “background job tanpa pusing”, Inngest adalah sweet spot. Untuk startup yang sudah dapat funding dan butuh compliance atau long-running job, Trigger.dev self-hosted adalah investasi yang worth. Untuk SMB dengan use case ringan dan budget ketat, QStash + Cloudflare Workers adalah kombinasi paling efisien.
Satu hal yang sering dilewatkan: ketiga tool ini tidak mutually exclusive. QStash untuk scheduled simple task + Inngest untuk onboarding workflow adalah kombinasi yang saya pakai di satu project, dan works well.
Ditulis oleh Asti Larasati