emit.run

Spaces

Organizing jobs with spaces

Spaces

Spaces are the top-level container for jobs. Each space belongs to an organization and acts as an isolated queue with its own jobs, tokens, and event stream.

Space Settings

Each space also has settings for outbound notifications.

Slack Webhook

You can configure a Slack Incoming Webhook URL at the space level:

  1. Open the space in the dashboard
  2. Go to Settings
  3. Add your Slack webhook URL
  4. Choose which events to send
  5. Click Save Slack settings

Supported Slack events:

  • created
  • started
  • completed
  • failed
  • dead
  • killed

Notes:

  • failed can be sent on retriable failures (before the job becomes terminal)
  • if a job ultimately dies, you'll get both failed and dead
  • leaving the webhook URL empty disables Slack notifications for the space

HTTP Push (Worker Wake)

You can configure a generic HTTP endpoint to receive job.pending wake signals:

  1. Open the space in the dashboard
  2. Go to Settings
  3. Add your push URL in HTTP Push (Worker Wake)
  4. (Optional) add custom headers
  5. (Optional) limit by job names (comma-separated)
  6. Click Save HTTP push settings

Notes:

  • push payloads include jobId, so receivers can claim exactly one job via POST /api/v1/jobs/:jobId/claim
  • push is best-effort and asynchronous; failures do not affect job processing correctness
  • leaving push URL empty disables HTTP push for the space

Creating a Space

  1. Go to your organization in the dashboard
  2. Click Create Space
  3. Enter a name (e.g., production, staging, email-jobs)

How Spaces Isolate Work

  • API keys are space-scoped — a token created for production cannot access jobs in staging
  • Workers poll from a specific space — each worker targets one space's queue
  • WebSocket streams are per-space — subscribe to all events in a space, or drill down to a single job
  • Each space has its own dispatch queue — jobs in one space don't affect processing in another

Naming Patterns

PatternExamplesWhen to use
By environmentproduction, staging, devSame job types across environments
By job typeemails, video-processing, exportsDifferent job types with different workers
By team/customerteam-billing, customer-acmeMulti-tenant or team-based isolation

Choose whatever makes sense for your setup. You can always create more spaces later.

On this page