Developer tools for background work

Background jobs that just run

Nodeflux is a developer-tools startup building durable background jobs, scheduling, and event-driven workflows for backend teams — without standing up and operating your own queue infrastructure.

Background jobs

Run anything as a durable job

Move slow work out of the request/response cycle. Jobs are plain functions, deployed the same way as the rest of your app — with retries and checkpointing built in.

API callEventSchedule
nodeflux.job()auto-retry
Your function
export const job =
  nodeflux.job(
    "sync-inventory",
    { retries: 3 },
    async () => {...}
  );

Define with code

No YAML, no DSL — just an async function using the Nodeflux SDK.

Attempt 1failed · 2s
Attempt 2failed · 8s
Attempt 3succeeded · 21s

Retries with backoff

Failed steps retry automatically. Idempotency keys stop a retry from duplicating a charge.

run_8a2fsucceeded
run_8a2efailed
run_8a2drunning

Full run history

Every run, input, and output is logged — searchable, not just a pass/fail status.

Scheduling & events

Cron jobs and webhooks, handled

Recurring jobs with drift correction and overlap protection, plus event and webhook triggers with signature verification built in.

Mon
Tue
Wed
Thu
Fri
Sat
Sun
0 2 * * 1,3,5Runs at 2:00 AM on Mon, Wed, Fri
Next runin 4h 12m
Last runsucceeded, 2d ago
TimezoneAsia/Kathmandu
200POST /webhooks/stripe
200POST /webhooks/github
200POST /webhooks/custom

Event & webhook triggers

Point a webhook at Nodeflux — signature verification and retries are handled for you.

fetch-user
charge-card
send-receipt

Durable steps

Each step checkpoints independently, so a failure doesn't restart the whole job.

M
T
W
T
F
S
S

Timezone-aware

Schedules run in the timezone you set, not just UTC — with overlap protection built in.

Tooling

Tools for your entire workflow

Test locally, inspect what happened in production, and know the moment something keeps failing — without switching tools.

Why Nodeflux

What doesn't change as you scale

Most teams build background job infrastructure themselves on top of a raw queue, then spend the next year patching the gaps. Here's what we think that infrastructure should look like from day one.

Functions, not a new DSL

Jobs are plain functions deployed with the rest of your app — no YAML workflow language to learn and maintain separately.

Idempotency as a first-class concept

Retries shouldn't duplicate a charge or a sent email. Idempotency keys are part of the step API, not something you bolt on yourself.

Observability by default

Every run is logged automatically — input, output, and timing per step — not an integration you wire up after something breaks.

Usage-based, always

You pay for runs that happen, not reserved capacity sitting idle. Standard pricing is never hidden behind a sales call.

Reliability

Built to run in production

Dependable by design

Median job pickup latency over the last 24 hours.

<150ms

Median job pickup time

Automatic

Retries with backoff

Usage-based

No reserved capacity

Per-step

Checkpointing & observability

Developer-first experience

  • Deploy jobs the same way as the rest of your app
  • Full run history — input, output, and timing per step
  • SDKs for TypeScript and Python

~/app

$ npx nodeflux dev

→ watching jobs/ for changes...

→ sendWelcomeEmail registered

Frequently asked questions

Common questions about Nodeflux

Is Nodeflux open source?

The SDK is open source. The managed platform — scheduling, retries, dashboard, and infrastructure — is a hosted service with a free tier to start.

Which languages does the SDK support?

TypeScript and Python today, with more runtimes planned based on demand from early users.

How is this different from a raw queue like SQS or Redis?

A raw queue gives you message delivery — you still build retries, idempotency, scheduling, and observability yourself. Nodeflux gives you those as part of the job primitive, not a separate project.

Can I self-host Nodeflux?

Not today. Nodeflux is a managed platform — you deploy your functions, and we handle the scheduling and execution infrastructure behind them.

What happens during a migration from our own queue?

Most teams migrate job-by-job rather than all at once — wrap an existing handler in a Nodeflux job, point traffic at it, and move the next one when you're ready. We're happy to walk through a specific setup.

Start building

Deploy your first background job and see it run.

Get started free

See the product

A walkthrough of jobs, scheduling, retries, and steps.

Explore the product

Check pricing

Usage-based, from a generous free plan.

View pricing