Dagu vs Dagster
Dagu e Dagster resolvem problemas diferentes.
O Dagster é um orquestrador de dados em Python construído em torno de software-defined assets e lineage. O Dagu é um binário único que executa workflows YAML chamando comandos que você já tem. Esta página explica onde cada um se encaixa.
name: nightly-ops
schedule: "0 2 * * *"
steps:
- id: extract
run: python scripts/extract.py
- id: transform
run: ./bin/transform
retry_policy:
limit: 3
depends: [extract]
- id: notify
run: ./scripts/slack-success.sh
depends: [transform]Um binário autossuficiente, sem Postgres, daemon ou webserver para operar
Os workflows são YAML declarativo, não um framework Python
Estado em arquivos, sem database externo ou message broker
Executors para shell, Docker, HTTP, SSH, sub-workflows, SQL e passos de AI-agent
O que o Dagu oferece
O Dagu agenda, repete e observa comandos. Você escreve o workflow em YAML e o Dagu o executa como um único processo apoiado em arquivos. O Web UI mostra execuções, logs e histórico sem serviços extras.
- Executa scripts, binários, containers, chamadas HTTP, comandos SSH, SQL e passos de AI-agent.
- Começa como um binário único e cresce para execução em fila ou distribuída depois.
- Veja o histórico de execuções e os logs no Web UI sem subir um database.
Como o Dagster é diferente
O Dagster trata o data asset como a unidade de trabalho. Você declara os asset em Python, e a plataforma rastreia lineage, partition e materialization entre eles. Uma instalação self-hosted roda um webserver e um daemon apoiados em Postgres.
- software-defined assets modelam as tabelas e arquivos que um pipeline produz.
- partition e backfill permitem processar e reprocessar fatias de dados.
- O IO manager cuida da leitura e escrita, mantendo o código do asset enxuto.
Quando escolher o Dagster
Se o seu trabalho é essencialmente sobre data asset e sua lineage, o Dagster é a ferramenta mais forte. O Dagu não tem software-defined assets, não tem IO manager e não é um framework Python, então não modela uma plataforma de dados como o Dagster.
- Você quer lineage e observabilidade no nível de asset sobre modelos dbt e tabelas.
- Conjuntos particionados, backfill e IO manager são o centro dos seus pipelines.
- A equipe escreve pipelines em Python e quer um modelo centrado em asset.
Dagu vs Dagster em resumo
FAQ
Practical questions before adopting Dagu
O Dagu substitui o Dagster?
Para trabalho com data asset, não. O Dagster foi feito para software-defined assets, lineage e partition, e o Dagu não faz nada disso. O Dagu substitui o Dagster apenas quando você precisava sobretudo agendar e observar comandos e o modelo de asset era mais do que a tarefa exigia.
O Dagu consegue orquestrar data pipelines?
Sim, quando o pipeline pode ser expresso como comandos, containers, chamadas HTTP, comandos SSH, SQL ou sub-workflows. O Dagu orquestra os passos, mas não rastreia data asset ou lineage entre eles.
Preciso de um database para rodar o Dagu?
Não. O Dagu mantém o estado em arquivos e roda como um binário único. Não há Postgres, daemon ou webserver separado para operar, e essa é a principal diferença de instalação em relação a um Dagster self-hosted.
Start with one workflow.
Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.