Background job infrastructure

Background jobs, without the infrastructure.

Enqueue work from your app. JobOrc runs it on workers, retries failures, and shows you every attempt.

send-welcome-email

job_88a910·notifications

⋯queued
  1. queued

  2. running

  3. succeeded

attempt 1 / 3
worker wrk_04a1
duration —
region iad

01

You write the job. JobOrc executes it.

  1. enqueue

    Your Application

  2. execute

    JobOrc

  3. work

    Background Work

email-job

02 · Reliability

Reliable

Retries and recovery are built in. Jobs keep running.

send-welcome-email

attempt 2 of 3 · notifications

⟳running
  1. ⟳runningWorker accepted execution14:29:02.104
  2. ✕failedConnection reset by peer+96ms
  3. ⟲retryingBackoff complete · retry 2+1.0s
  4. ✓succeededCompleted in 142ms+1.2s

03 · Timing

Flexible

Immediate, delayed, or on a schedule — same queue model.

send-welcome-email

notifications · schedule

⟳running

Now

14:20

Today

18:00

Tomorrow

09:00

Friday

18:00

Mode

immediate

Run at

14:20

Queue

notifications

04 · Visibility

Observable

Timeline, worker, duration, and failure detail per attempt.

send-welcome-email

job_88a910 · notifications

⋯queued
  1. 14:20:01queued
  2. 14:20:01started
  3. 14:20:02worker wrk_04a1
  4. 14:20:03completed · 142ms

Execution

See every attempt.
Know what happened.

send-welcome-email⋯queued
job_88a910
Queuenotifications
Attempt1 / 3
Duration—
Workerunassigned

Timeline

  1. ⋯queuedQueued14:29:01.004—
  2. ⟳runningStarted14:29:01.01886ms
  3. ✓succeededCompleted14:29:01.186168ms

Payload

{
  "userId": "usr_99182",
  "template": "welcome_onboarding"
}

Failure handling

When things fail,
JobOrc keeps going.

dispatch-webhook

delivery_8f21 · attempt 2 / 3

Automatic recovery⟳running
  1. ⟳running

    Attempt started

    14:29:02.104

  2. ✕failed

    Worker returned 503

    +96ms

  3. ⟲retrying

    Retry scheduled

    +1.0s

  4. ✓succeeded

    Delivery recovered

    +1.2s

SDK

Three lines of code.

enqueue.ts
await joborc.jobs.enqueue(
  "send-email",
  { userId }
)
⋯queuedJob accepted
  1. Queued
  2. Running
  3. Succeeded

You build the application. JobOrc runs the work.