Skip to content

Feature matrix ​

What each feature is, which edition it needs and where it is available. Core runs without a key; Pro needs a JoobQ Pro key (see Licensing). In the language columns, ✓ means the SDK (or the Crystal library) has it and it is tested against a real server in that language; ○ means it is there but not tested in that language yet; – means not available; n/a means the test does not apply to Crystal, which uses the JoobQ libraries directly.

FeatureEditionStatusCrystalPythonTypeScriptRubyGoRustJavaPHP.NETPage
Enqueue a job (one at a time)Coreshipped✓✓✓✓✓✓✓✓✓page
Batch enqueue (enqueue_many, POST /sdk/jobs/batch, up to 500 jobs)Coreshipped–○○○○○○○○page
Enqueue without waiting (enqueue_async)Coreshipped–○○○○○○–○page
Retries with backoff and the dead letter queueCoreshipped✓✓✓✓✓✓✓✓✓page
Non-retryable errors (straight to the dead letter queue)Coreshipped✓✓✓✓✓✓✓✓✓page
Delayed jobs (delay_ms)Coreshipped✓✓✓✓✓✓✓✓✓page
Run at an absolute time (run_at_ms)Coreshipped–✓✓✓✓✓✓✓✓page
Per-job expires_ms and timeout_msCoreshippedn/a✓✓✓✓✓✓✓✓page
Request context and the application container (ctx.app, ctx.context)Coreshipped–✓✓✓✓✓✓✓✓page
Unique jobs, while_locked (unique_key + unique_ttl_ms)Coreshippedn/a✓✓✓✓✓✓✓✓page
Unique jobs, until_executed (unique_mode)Proshippedn/a✓✓✓✓✓✓✓✓page
Unique jobs, until_executing (unique_mode)Proshipped–○○○○○○○○page
Sealed job fields (encrypt_fields, encrypted_property)Coreshipped✓✓✓✓✓✓✓✓✓page
Queue throttling (claim-time rate per queue)Coreshippedserverserverserverserverserverserverserverserverserverpage
Rate limiting (rate_limit(key, limit, period_ms))Proshippedn/a✓✓✓✓✓✓✓✓page
Batches with completion callbacks (JoobQPro::Batch)Proshipped○––––––––page
Batches with completion callbacks from the SDKsProcoming–○○○○○○○○page
Dead letters (browse, re-drive, purge, export)Coreshippedconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsolepage
Worker middleware (worker.use(mw))Coreshippedn/a✓✓✓✓✓✓✓✓page
Long-poll delivery, leases, ack batching and graceful shutdownCoreshippedn/a✓✓✓✓✓✓✓✓page
Pause, resume, clear and concurrency of a queueCoreshippedconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsolepage
Job schedules registered from code (register_schedule, cron or every)Coreshippedn/a✓✓✓✓✓✓✓✓page
Job schedules in the console (pause, resume, run now)Coreshippedconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsolepage
Workflow schedulesProshippedconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsolepage
Alert rules and notification channelsProshippedconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsolepage
Durable workflows conducted by the engine (steps, blueprints)Proshipped✓✓✓✓✓✓✓✓✓page
Parallel, sequence and after:Proshipped✓✓✓✓✓✓✓✓✓page
Step retries, timeout_ms, heartbeat_ms, schedule_to_start_ms, non_retryableProshipped✓✓✓✓✓✓✓✓✓page
Workflow timeout (blueprint timeout_ms)Proshipped✓✓✓✓✓✓✓✓✓page
Sagas and compensationProshipped✓✓✓✓✓✓✓✓✓page
Signals, signal timeouts and durable timersProshipped✓✓✓✓✓✓✓✓✓page
QueriesProshipped✓✓✓✓✓✓✓✓✓page
Workflow client reads (describe, result, history, query, search attributes)Proshippedn/a✓✓✓✓✓✓✓✓page
Search attributes (register, set, search)Proshippedconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsolepage
Cancel, terminate, re-drive, retry a step, bulk actionsProshippedconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsolepage
Event history, retention and the history archiveProshippedconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsolepage
Worker build ids (promote, retire, re-pin; admin)Proshipped○––––––––page
Continue-as-new, updates, cancellation scopes, replay and migrate (Crystal workflows, console and API)Proshipped○––––––––page
Conditional steps (only_if)Proshipped✓✓✓✓✓✓✓✓✓page
Child workflowsProshipped✓✓✓✓✓✓✓✓✓page
Continue-as-newProshipped✓✓✓✓✓✓✓✓✓page
Compensation on waits, timers and childrenProshipped✓✓✓✓✓✓✓✓✓page
Cancellation scopes (scope, non_cancellable)Proshipped✓✓✓✓✓✓✓✓✓page
Update handlers and update_workflowProshipped✓✓✓✓✓✓✓✓✓page
Change gates (versioning)Proshipped✓✓✓✓✓✓✓✓✓page
Roles, API tokens and the SDK tokenCoreshippedconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsolepage
Two-factor authentication and OpenID Connect single sign-onCoreshippedconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsolepage
Audit logCoreshippedconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsoleconsolepage
Retention of audit events, dead letters and finished workflowsCoreshippedserverserverserverserverserverserverserverserverserverpage
Prometheus metrics (/metrics)Coreshippedserverserverserverserverserverserverserverserverserverpage
Several instances and leader leasesCoreshippedserverserverserverserverserverserverserverserverserverpage
Command-line tasks of the self-hosted binaryCoreshippedserverserverserverserverserverserverserverserverserverpage
Deployment licence (402 paid_license_required) and the Pro keyCoreshippedserverserverserverserverserverserverserverserverserverpage

"console" means the feature is used through the JoobQUI console and its API, "server" that it is configured on the server, whatever language the workers are written in.

JoobQ Core is MIT licensed. JoobQ Pro needs a licence key.