Platform Pipelines Agents Human review Self-improvement Observability Deployment Security Use cases Compare Docs Pricing Roadmap Get early access

Millstream vs n8n

n8n is a workflow automation tool built around a visual editor and a large catalogue of integration nodes, including nodes for LLMs and agents. Millstream is a pipeline platform for engineers: the pipeline is a file in git, validated before it runs, and every item that flows through code, agents and review is persisted with its history.


At a glance

Millstream n8n
Definition pipeline.yaml and a package directory in git Workflows built in a browser editor, stored in n8n's database, exportable as JSON
Validation millstream check: actions, streams, CEL, schemas between producers and consumers In the editor, and at execution
Unit of durable work One delivery of one item to one step, with retries and dead letters One workflow execution, passing a list of items between nodes
Revisions Content hash of the package; runs pinned to theirs; millstream rollback Kept in n8n's database
Agents Agent actions with schemas, sandbox, transcripts, budgets and evals AI and agent nodes
Human decisions review builtin with an inbox, edits, reason codes, timeouts and sampled auto-approval Wait nodes and forms
Integrations Actions you write or install from a registry; a commercial catalogue is planned A large catalogue of built-in nodes
Licence Apache-2.0 core, commercial edition Sustainable Use License
Status Pre-release: M1 to M5 built and tested Released, widely used

Where the models differ

The file in git is the source of truth

A Millstream package is a directory: pipeline.yaml, local actions, lessons, evals and assets. Its revision is the SHA-256 of its content, so a change to a prompt or a lessons file is a new revision, exactly like a change to a step. Code review, diffs and CI apply to pipelines as they do to any code. Millstream has no graphical editor on purpose: the UI shows the live graph, runs, items and the review inbox, and pipelines change through their packages.

Failures are per item and replayable

Each item has its own deliveries, retry policy (maxAttempts, backoff, maxBackoff) and dead-letter stream. An output that matches no route goes to the step's dlq as an unrouted dead letter, so a gap in routing is visible and replayable. The crash suite kills the engine and nodes at every boundary of every atomic unit; the 30-minute soak test killed engines and cut nodes off the network under load and ended with every run settled and no item published twice.

Agents are governed

An agent action declares its model, tools, network destinations and maxCostUsd. Output that fails its schema is a retryable error, and the full transcript of each attempt is kept. Agent calls are recorded and replayed in tests, so millstream eval and millstream test pipeline run deterministically in CI without an API key. Cost is a metric per step and model, and the cost insight reports cost per approved item.

Review is measured

qualify-review:
  action: review
  in: leads.qualified
  out: leads.approved
  config: { inbox: sales, timeout: 8h, onTimeout: { escalate: sales-leads }, reasons: [notOurMarket, student] }

Every decision records the reason code and the diff of any edit. Auto-approval rules are measured on a sample (sampleRate, 5% by default), and the intervention rate per step tells you whether the pipeline needs people less over time.


When to choose n8n


Using them together

n8n's HTTP nodes can fire a Millstream run through a webhook trigger, POST /hooks/<pipeline>/<trigger> with the trigger's token. In the other direction, a review step's notify posts a generic JSON webhook each time an item parks or escalates, which an n8n webhook can receive and fan out to the team's channels.


Next

Pipelines · Human review · Getting started