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:
- Open the space in the dashboard
- Go to Settings
- Add your Slack webhook URL
- Choose which events to send
- Click Save Slack settings
Supported Slack events:
createdstartedcompletedfaileddeadkilled
Notes:
failedcan be sent on retriable failures (before the job becomes terminal)- if a job ultimately dies, you'll get both
failedanddead - 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:
- Open the space in the dashboard
- Go to Settings
- Add your push URL in HTTP Push (Worker Wake)
- (Optional) add custom headers
- (Optional) limit by job names (comma-separated)
- Click Save HTTP push settings
Notes:
- push payloads include
jobId, so receivers can claim exactly one job viaPOST /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
- Go to your organization in the dashboard
- Click Create Space
- Enter a name (e.g.,
production,staging,email-jobs)
How Spaces Isolate Work
- API keys are space-scoped — a token created for
productioncannot access jobs instaging - 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
| Pattern | Examples | When to use |
|---|---|---|
| By environment | production, staging, dev | Same job types across environments |
| By job type | emails, video-processing, exports | Different job types with different workers |
| By team/customer | team-billing, customer-acme | Multi-tenant or team-based isolation |
Choose whatever makes sense for your setup. You can always create more spaces later.