Skip to content

Developers

Three steps, four SDKs, one binary.

Three steps, four SDKs, one binary.

Three steps, four SDKs, one binary.

Everything below runs against a local Postgres without an account. When you are ready, one environment variable points it at the cluster.

Everything below runs against a local Postgres without an account. When you are ready, one environment variable points it at the cluster.

Quickstart

Quickstart

Quickstart

1. Install

terminal

npm i @gantry/node
npx gantry dev

2. Enqueue

app/signup.ts

import { gantry } from “@gantry/node”

await gantry.enqueue(“emails”, {
to: user.email,
template: “welcome”
}, { key: user.id })

3. Handle

workers/emails.ts

gantry.handle(“emails”, async (job) => {
await sendEmail(job.data)
})

// gantry worker emails --concurrency 32

Four SDKs, same four verbs.

Four SDKs, same four verbs.

Four SDKs, same four verbs.

Node

@gantry/node

18+ and up

Python

gantry-sdk

3.10+ and up

Go

go.gantry.dev/sdk

1.21+ and up

Ruby

gantry

3.2+ and up

The whole API is seven endpoints.

The whole API is seven endpoints.

The whole API is seven endpoints.

REST over HTTPS, bearer token, JSON in and out. Rate limited at 1,000 requests a second per project, which nobody has reached with the batch endpoint.

POST

/v1/jobs

Enqueue one job or a batch of up to 1,000

GET

GET

/v1/jobs/:id

/v1/jobs: /v1/jobs/:id

State, attempts and the payload

Enqueue one job or a batch of up to 1,000: State, attempts and the payload

POST

POST

/v1/jobs/:id/cancel

/v1/jobs: /v1/jobs/:id/cancel

Cancel a job that is not leased yet

Enqueue one job or a batch of up to 1,000: Cancel a job that is not leased yet

GET

GET

/v1/queues

/v1/jobs: /v1/queues

Depth, oldest job and rate for every queue

Enqueue one job or a batch of up to 1,000: Depth, oldest job and rate for every queue

POST

POST

/v1/schedules

/v1/jobs: /v1/schedules

Create a schedule with a cron and a timezone

Enqueue one job or a batch of up to 1,000: Create a schedule with a cron and a timezone

POST

POST

/v1/dlq/replay

/v1/jobs: /v1/dlq/replay

Replay dead letter by filter

Enqueue one job or a batch of up to 1,000: Replay dead letter by filter

GET

GET

/v1/runs

/v1/jobs: /v1/runs

Cursor paged, filter by queue, state or time

Enqueue one job or a batch of up to 1,000: Cursor paged, filter by queue, state or time

The CLI does everything the dashboard does.

The CLI does everything the dashboard does.

The CLI does everything the dashboard does.

gantry dev

Local cluster on your machine, no account

gantry worker <queue>

Run a worker with --concurrency and --lease

gantry enqueue <queue> <json>

One job from the shell, for testing

gantry queues

Depth, oldest and rate, refreshed every second

gantry dlq list --queue billing

What is parked and why

gantry dlq replay --queue billing

Put it back, one or all

gantry export --since 30d

Everything as JSON lines

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