dagster
Dagster is a data pipeline orchestrator for the whole development lifecycle. Instead of wiring up tasks, you declare the data assets you want (tables, datasets, ML models, reports) as Python functions with the `@dg.asset` decorator, and Dagster works out dependencies from function arguments and runs them at the right time to keep the assets up to date. The README's example builds three assets, a DataFrame, a scikit-learn model and a stats table, that load as a graph in the web UI.
It is meant to be used from local development and unit tests through staging to production. The README describes three roles: a productivity platform (reusable components, early data-quality checks), an orchestration engine (multi-tenant, multi-tool) and a control plane (metadata, cataloging, lineage and diagnostics in one place), plus a library of integrations with common data tools. Python 3.9 to 3.14 is supported, and it installs from PyPI (for example `uv add dagster dagster-webserver dagster-dg-cli`).
It is a data-engineering tool rather than an AI-agent tool, but it is widely used to orchestrate ML and data workflows. This review is based on the README and repository data; we have not run it ourselves.
Features
Why choose it
Trade-offs
Maintenance check
- Last commit
- 2026-10-22
- Commits, last 90 days
- 100+
- Releases, last 90 days
- 11
- Latest release
- 1.13.26 (2026-10-09)
- Open issues
- 2610
- Recent issues with at least one comment
- 3/13
Oldest week on the left; the latest four weeks are orange. Source: GitHub commit activity.
Status rule: archived on GitHub = Archived; last commit within 90 days = Active; 91 to 365 days = Slowing; older = Stale. All figures come from the GitHub API on the date shown.
Most discussed open issues
- #2219 Support Auth & RBAC in Dagit87 comments · 2020-02-27
- #17005 Partitioned asset checks69 comments · 2023-10-04
- #21655 Sqlmesh integration51 comments · 2024-05-06
- #20325 Dagster uses an implausible number of postgresql connections42 comments · 2024-03-07
- #22553 Global asset page not showing partitioned assets as unsynced even though partitions are out of sync32 comments · 2024-06-14
Issue titles are quoted from GitHub. Open the link to check whether a problem still applies to the version you use.
Who it fits
- You need an asset-centric data and AI orchestration platform that tracks data dependencies, partition lineages, and observability in Python.
- You want local development ergonomics, declarative asset definitions, and unified orchestration across dbt, ML models, and data pipelines.
- You need simple, lightweight agent conversation loops; Dagster is an enterprise data engineering orchestrator, not a chat bot loop.
- You need durable function workflows with arbitrary sleeps and human-in-the-loop approvals without asset abstractions; Temporal is simpler for that.
How it differs
Dagster is built around asset-oriented pipelines, data lineage, and MLOps batch/streaming data awareness. Temporal is built around general-purpose durable execution of arbitrary code workflows with event-driven state recovery.
Compatibility
Quick start
Use cases
Alternatives
Comments
No comments yet. Be the first!