Skip to content
MyStackPlan

Background jobs and queues for small apps

Inngest, Trigger.dev, Upstash QStash and Amazon SQS. How each one counts a job, where the free tiers stop, and what 10,000 users cost.

· 4 min read

In short: most small apps run their background jobs for free. The free tiers count jobs differently, so check how your jobs are counted before you compare. At 10,000 users, costs range from $0 on Amazon SQS to $99 a month on Inngest Pro. All prices below were checked in October 2026.

What a background job is

Some work should not happen while a visitor waits for a page: sending a batch of emails, resizing an uploaded video, calling a slow AI model, or syncing data every night. A background job runs that work separately, and tries again if it fails (a retry).

There are two common shapes:

  • A queue: your app adds a message ("resize photo 123") and a worker, a program you run, picks it up and does the work.
  • A job platform: you write the job as a function, and the service calls it, retries it, schedules it and shows you logs.

Amazon SQS is a queue. Upstash QStash is a queue that delivers each message by calling your own API over HTTP. Inngest and Trigger.dev are job platforms.

The four services

Inngest

Inngest runs jobs and multi-step workflows written as code. It bills per execution: one for each function run plus one for each step inside it, so a function with 5 steps uses 6 executions.

The Hobby plan is free with 50,000 executions a month, 5 concurrent steps and 5 seats. Past the quota, execution pauses until you upgrade; there is no pay-as-you-go on Hobby. Pro is $99 a month with 1 million executions, then up to $0.000050 per execution. Inngest can also be self-hosted.

Trigger.dev

Trigger.dev runs long tasks on its own servers. You pay $0.25 per 10,000 runs plus compute time by the second, for example $0.0000338 a second on the default Small 1x machine.

The Free plan includes $5 of usage credit a month, 20 concurrent runs and 1 day of logs. When the credit is used up you must upgrade. Hobby is $10 a month with $10 of credit and 50 concurrent runs; Pro is $50 with $50 of credit and 200 concurrent runs. Past the credit, paid plans bill the extra and keep running. Trigger.dev can also be self-hosted.

The builder counts run fees only, because it cannot know how long your tasks take. Long tasks use the credit faster.

Upstash QStash

Upstash QStash is a message queue and scheduler that calls your endpoints over HTTP, which suits serverless hosting. The Free plan allows 1,000 messages a day, up to 10 active schedules and 1 MB per message. The daily limit is soft: short spikes are allowed, but if you keep going over, the API may return errors.

Pay as you go is $1 per 100,000 messages with no daily cap and no monthly minimum. Each delivery attempt counts as a message, so a retry is another message.

Amazon SQS

Amazon SQS is a plain queue. The first 1 million requests a month are free. After that, standard queues cost $0.40 per million requests in US East.

Sending, receiving and deleting a message are three separate requests, so the builder counts 3 requests per message. That makes the free tier about 333,333 messages a month. SQS only holds the queue: you still run the worker, for example on AWS Lambda or a server.

How they compare as you grow

The stack builder assumes 10 job runs per user a month and counts each run as one message or one execution. It checks daily limits against a busy day, assumed to be twice an average one.

Monthly users Runs a month Inngest Trigger.dev QStash SQS
1,000 10,000 $0 $0 $0 $0
10,000 100,000 $99 $0 $1.00 $0
100,000 1,000,000 $99 $25.00 $10.00 $0.80

At 10,000 users, Inngest needs Pro because 100,000 executions are over the free 50,000. QStash moves to pay as you go because a busy day of about 6,667 messages is over the free 1,000 a day. Trigger.dev's run fees are $2.50, inside the free $5 credit, before compute time.

If your jobs have several steps, Inngest counts more executions than this table shows. If your QStash jobs retry often, you send more messages.

Things the price does not show

  • You may still need a worker. With SQS you run and pay for the code that processes jobs. With QStash, your own API does the work. Inngest and Trigger.dev functions run on your hosting or on Trigger.dev's machines.
  • Concurrency. The number of jobs that can run at once differs a lot between plans, from 5 concurrent steps on Inngest Hobby to 200 concurrent runs on Trigger.dev Pro.
  • Logs. Free plans keep logs for a short time: 24 hours of traces on Inngest Hobby, 1 day on Trigger.dev Free and 3 days on QStash Free.

What to pick

  • Serverless app, simple jobs: QStash. 1,000 free messages a day, then $1 per 100,000.
  • Multi-step workflows with retries per step: Inngest. The free 50,000 executions go a long way if your functions have few steps.
  • Long-running tasks, such as AI workflows: Trigger.dev, keeping in mind that compute time is billed on top.
  • Already on AWS, and happy to run a worker: SQS is the cheapest at volume.

Compare them in the stack builder, or browse every option under Background Jobs & Queues.