Millstream compared
Millstream runs declarative pipelines where each item flows through code, LLM agents and human review, with lineage, cost and a learning loop built in. The tools below solve neighbouring problems well, and each page says where one of them is the better fit.
At a glance
| Millstream | Temporal | Airflow, Dagster, Prefect | n8n | LangGraph, CrewAI | Inngest, Trigger.dev | |
|---|---|---|---|---|---|---|
| Model | Declarative YAML graph of steps and streams | Workflows as code in several languages | Python code: DAGs, assets, flows | Visual node graph | Agent graph or crew, in code | Functions with durable steps, in code |
| Unit of work | One item on a persisted stream | One workflow execution | One task run or asset materialisation | One workflow execution over a list of items | One invocation over shared state | One function run per event |
| Agents as steps | Agent actions: schema-validated, sandboxed, transcribed | Activities you write | Tasks you write | AI and agent nodes | The agent is the program | Steps you write |
| Human review | review builtin: inbox, edits, reason codes, timeouts, sampled auto-approval |
Signals and updates; the UI is yours | Varies per tool | Wait nodes | Interrupts (LangGraph), human input on tasks (CrewAI) | Wait-for-event primitives |
| Lineage | Per item, across steps and pipelines | Event history per execution | Per task or asset | Execution history per run | State per thread | Run history per function |
| Agent cost and budgets | Cost per call; maxCostUsd, runUsd, dayUsd enforced at dispatch |
Your code | Your code | Left to the workflow | Through tracing tools | Your code |
| Hosting | Self-hosted, one binary: SQLite on a laptop, Postgres with a standby on a server | Self-hosted cluster with a database, or a hosted cloud | Scheduler, workers and a database; hosted offerings exist | Self-hosted or hosted | A library inside your process | Hosted service; self-hosting documented |
| Licence | Apache-2.0 core, commercial edition | MIT | Apache-2.0 | Sustainable Use License | MIT | Trigger.dev Apache-2.0; Inngest per its repository |
| Self-improvement | Insights and validated proposals, accepted by a person | Not built in | Not built in | Not built in | Not built in | Not built in |
| Status | Pre-release: M1 to M5 built and tested | Released, widely used | Released, widely used | Released, widely used | Released, widely used | Released, widely used |
Tool by tool
Millstream vs Temporal. Temporal makes code durable: a workflow is a function whose history is replayed after a failure. Millstream makes a stream of items durable, with agents and people as steps. Temporal is the better fit for general workflows with loops, long sleeps and external events.
Millstream vs Airflow, Dagster and Prefect. The Python orchestrators schedule tasks and assets over batches of data. Millstream schedules deliveries of single items through code, agents and review. For warehouse jobs and partitioned data, the orchestrators fit better.
Millstream vs n8n. n8n builds automations in a visual editor with a large integration catalogue. Millstream keeps the pipeline in a file in git, checked before it runs, with per-item durability and a review inbox. For integration glue built by non-engineers, n8n fits better.
Millstream vs LangGraph and CrewAI. The agent frameworks orchestrate the reasoning inside one agent. Millstream orchestrates items across many steps, one of which may be such an agent. The two layers combine.
Millstream vs Inngest and Trigger.dev. Inngest and Trigger.dev run durable background functions next to an application's code, hosted first. Millstream is a separate, self-hosted pipeline system. For a TypeScript app that needs reliable background jobs, they fit better.