Skip to content
Source available. Built on Postgres.

Complex workflows.
Beautifully orchestrated.

A self-hosted workflow orchestration engine that runs on Postgres alone.
Durable workflows, workers in any language, and just one dependency.

Source available Self-hostable Postgres-powered
Workflows /fulfil_orderv1
Interactive demo
SIMPLEValidate orderRunningSIMPLECharge paymentQueuedSIMPLEReserve stockQueuedJOINJoin resultsQueuedSIMPLESend receiptQueuedSIMPLEValidate orderRunningSIMPLECharge paymentQueuedSIMPLEReserve stockQueuedJOINJoin resultsQueuedSIMPLESend receiptQueued
Running: Validate order0 / 5 tasks complete

Validate an order, charge and reserve in parallel, then bring it all together.Illustrative execution · no server required

YOUR LOGIC. YOUR LANGUAGE.
TypeScriptPythonGoJavaRustHTTP

One worker protocol. Endless possibilities.

01 / THE DEVELOPER EXPERIENCE

You write the work.
Node Flow connects it.

From a simple sequence to a sprawling graph, the same clear model takes you from definition to execution.

DECLARE

A graph you can reason about.

Express branches, parallel work, loops, and human approvals in inspectable JSON.

Explore the workflow DSL
EXECUTE

Built for the unexpected.

Durable state, task leases, and configurable retries keep distributed work moving.

Understand execution
OBSERVE

Every run tells a story.

Follow execution history, inspect task outputs, and retry from the point that matters.

Take control of a run
02 / RADICALLY SIMPLE INFRASTRUCTURE

Big workflows.
Small footprint.

Queues, timers, workflow state, and the outbox. All backed by Postgres. One transactional foundation for the whole system.

One required infrastructure dependency Pure, deterministic decision engine Scale API, decider, and poller independently
Go inside the architecture
03 / A SHORT PATH TO YOUR FIRST RUN

Less setup.
More shipping.

1

Start your local stack

Bring up Postgres, the server, and the dashboard with Docker Compose.

2

Define the workflow

Describe your tasks in JSON. Register the definition with the API.

3

Connect a worker. Watch it flow.

Lease a task, execute your logic, and report the result.

Follow the complete quickstart
YOUR TERMINAL
# From a checkout of the repository
$docker compose -f docker/docker-compose.yml up

Postgresready

Node Flow server:3000

Dashboard:3100

$
Example output · Docker Compose starts three services
THE NEXT STEP IS YOURS

Built for builders.
Documented for humans.

All documentation
04 / HOW IT COMPARES

A Conductor, Temporal and
Trigger.dev alternative.

All comparisons
05 / QUESTIONS

Frequently asked.
Plainly answered.

What is Node Flow?

Node Flow (node-flow) is a self-hosted workflow orchestration engine. You describe a process as a declarative JSON DAG, workers in any language poll for the steps they own, and the engine makes every step run, retry, time out and compensate as defined — across restarts, deploys and failures. PostgreSQL 18 is its only infrastructure dependency.

Is Node Flow an alternative to Netflix Conductor and Orkes?

Yes. Node Flow follows Conductor’s workflow model and serves a Conductor-compatible REST API at /conductor/api, so supported Conductor SDKs and workers connect with a base-URL change. It replaces Conductor’s Redis, persistence and Elasticsearch stack with a single Postgres database.

How is Node Flow different from Temporal or Trigger.dev?

Temporal and Trigger.dev make code durable: the workflow is a function in an SDK. Node Flow makes the workflow a JSON document the engine runs, and workers in any language implement individual steps. That suits processes that cross teams, services and languages, and that operators need to see and act on.

What infrastructure does Node Flow need?

Only PostgreSQL 18. Workflow state, task queues, timers, the transactional outbox and search all live in Postgres. There is no Redis, Cassandra, Elasticsearch or Kafka to run.

Which languages can workers be written in?

Any. The worker protocol is plain HTTP — lease a task, heartbeat, report a result. There is a TypeScript SDK and generated clients for Python, Go, Java and TypeScript.

Is Node Flow open source and free?

Node Flow is free to run, including commercially and inside products you sell. It is source available rather than OSI open source: the code is public and may be redistributed unmodified, but modified versions may not be distributed.

YOUR INFRASTRUCTURE. YOUR RULES.

Let it flow.

Your next workflow starts with a single step.

Start building with Node Flow
Dwaipayan Sardar
BEHIND THE FLOW

Dwaipayan Sardar

Built with curiosity. Shared with the world.

Meet the builderdwaipayan.in (opens in a new tab)