Skip to content
emitDocs

Get started

Introduction

emit runs your background jobs and workflows, and keeps each job's progress and result where your app can read them.

emit is a job queue you call over HTTP. Your app creates a job: a name, like send-receipt, and a JSON payload. emit stores it before it answers, then hands it to one of your workers, the processes that do the work. A job that fails is tried again. Its progress, logs and result stay with it, so your app, your team and a browser can follow it to the end.

The work runs in your own code, on your own servers. emit keeps the queue and the record.

What you can build

  • Background jobs. Send a receipt, resize an image or sync an account after the request that asked for it has returned.
  • Scheduled work. Run a job in an hour, or at a set time.
  • Workflows. A function that runs steps, sleeps for days and waits for a person or an event, and carries on after a crash or a deploy.
  • Live progress. Show a progress bar in the browser, with no polling and no tracking table of your own.

How it fits together

  1. Your app creates jobs in a space, a named queue with its own settings, such as emails or billing.
  2. A worker asks for jobs by name, runs them, and reports back: progress along the way, then a result or an error.
  3. Your app reads the result, follows the job as it runs, or gets a signed webhook when it ends.

You reach emit through the TypeScript SDK, the Go SDK, the CLI or plain HTTP. They all use the same API.

Where to start

Quickstart

Create a cluster, send a job and run it.

Jobs

Statuses, retries, delays, idempotency keys and callbacks.

Workflows

Steps, sleeps, signals and approvals, written as one function.

API reference

Every endpoint, with its fields and a curl example.