Skip to content

Product

Everything an operation needs to run work off the request path.

Everything an operation needs to run work off the request path.

Everything an operation needs to run work off the request path.

Four parts, and you will use three of them on day one. No DAGs, no workflow language, no new database to learn.

Four parts, and you will use three of them on day one. No DAGs, no workflow language, no new database to learn.

Queues

Queues

Queues

A queue is a name and a set of rules.

A queue is a name and a set of rules.

Ordering per key

Jobs with the same key run one at a time, in order. Everything else runs in parallel.

Idempotency

Give a job an id and a second enqueue inside 24 hours is ignored.

Priority

Three levels. A high priority job jumps the line without starving the rest.

Rate limit

Cap a queue at N runs a second when the thing you call has an opinion about that.

Workers

Workers

Workers

A worker is one binary and a handler.

A worker is one binary and a handler.

Leases

A job is leased for 30 seconds and extended while your handler runs.

Graceful shutdown

On SIGTERM a worker stops taking work and finishes what it has, up to your timeout.

Concurrency

Per queue, per worker, and a global cap. All three are one flag.

Local mode

The same binary runs against a local Postgres with no account.

Schedules

Schedules

Schedules

Cron that survives a deploy and a time zone change.

Cron that survives a deploy and a time zone change.

Timezone aware

Amsterdam means Amsterdam, including the two nights a year it is not.

Catch-up window

If nothing ran for an hour, a missed run still fires inside its window.

Overlap policy

Skip, queue, or run anyway. The default is skip, which is what you want.

Pause

One command, and the schedule keeps its history.

Dead letter

Dead letter

Dead letter

Where a job goes when it has had enough.

Where a job goes when it has had enough.

Five attempts

Then parked with the payload, the last error and the whole attempt list.

Replay

One job, a filter, or the whole queue, from the dashboard or the CLI.

Alerts

A dead letter over your threshold pages you. Under it, it goes in the daily digest.

Export

JSON out, with everything needed to run it somewhere else.

The limits, before you ask support.

The limits, before you ask support.

The limits, before you ask support.

Payload, inline

Payload, inline

256 KB

256 KB

Bigger goes in your object store

Bigger goes in your object store

Attempts

Attempts

5 by default

5 by default

Up to 20 per queue

Up to 20 per queue

Lease

Lease

30 s

30 s

Extended while the handler runs

Extended while the handler runs

Concurrency

8 free, 512 on Team

Per queue and global

Per queue and global

Schedules

Schedules

5 free, unlimited on Team

5 free, unlimited on Team

Per project

Per project

History

History

7 / 30 / 90 days

7 / 30 / 90 days

By plan, exportable

By plan, exportable

Regions

Regions

38

38

Workers can run anywhere

Workers can run anywhere

Enqueue latency

Enqueue latency

14 ms p95

14 ms p95

Measured from the shared cluster

Measured from the shared cluster

Create a free website with Framer, the website builder loved by startups, designers and agencies.