Dagu vs Dagster
Dagu y Dagster resuelven problemas distintos.
Dagster es un orquestador de datos en Python construido en torno a software-defined assets y lineage. Dagu es un binario único que ejecuta workflows YAML que llaman a comandos que ya tienes. Esta página explica dónde encaja cada uno.
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]Un binario autónomo, sin Postgres, daemon ni webserver que operar
Los workflows son YAML declarativo, no un framework Python
Estado en archivos, sin database externa ni message broker
Executors para shell, Docker, HTTP, SSH, sub-workflows, SQL y pasos de AI-agent
At a glance
Dagu vs Dagster de un vistazo
Workflows YAML declarativos que llaman a comandos.
software-defined assets y lineage definidos en Python.
Un binario con estado en archivos, sin database.
Webserver y daemon respaldados por una database Postgres.
Scripts, containers, tareas de operación y comandos de AI-agent.
Plataformas de datos que necesitan modelar asset y lineage.
In depth
Where each tool fits
Qué ofrece Dagu
Dagu programa, reintenta y observa comandos. Escribes el workflow en YAML y Dagu lo ejecuta como un único proceso respaldado por archivos. El Web UI muestra ejecuciones, logs e historial sin servicios extra.
- Ejecuta scripts, binarios, containers, llamadas HTTP, comandos SSH, SQL y pasos de AI-agent.
- Empieza como un binario único y crece luego a ejecución en cola o distribuida.
- Consulta el historial de ejecuciones y los logs en el Web UI sin levantar una database.
En qué se diferencia Dagster
Dagster trata el data asset como la unidad de trabajo. Declaras los asset en Python y la plataforma rastrea lineage, partition y materialization entre ellos. Una instalación self-hosted ejecuta un webserver y un daemon respaldados por Postgres.
- Los software-defined assets modelan las tablas y archivos que produce un pipeline.
- partition y backfill permiten procesar y reprocesar porciones de datos.
- El IO manager se encarga de leer y escribir, manteniendo el código del asset conciso.
Cuándo elegir Dagster
Si tu trabajo trata en el fondo sobre data asset y su lineage, Dagster es la herramienta más fuerte. Dagu no tiene software-defined assets, no tiene IO manager y no es un framework Python, así que no modela una plataforma de datos como Dagster.
- Quieres lineage y observabilidad a nivel de asset sobre modelos dbt y tablas.
- Los conjuntos particionados, el backfill y los IO manager son el centro de tus pipelines.
- El equipo escribe pipelines en Python y quiere un modelo centrado en asset.
FAQ
Practical questions before adopting Dagu
¿Dagu reemplaza a Dagster?
Para trabajo con data asset, no. Dagster está hecho para software-defined assets, lineage y partition, y Dagu no hace nada de eso. Dagu reemplaza a Dagster solo cuando lo que necesitabas era sobre todo programar y observar comandos y el modelo de asset superaba lo que pedía la tarea.
¿Puede Dagu orquestar data pipelines?
Sí, cuando el pipeline se puede expresar como comandos, containers, llamadas HTTP, comandos SSH, SQL o sub-workflows. Dagu orquesta los pasos, pero no rastrea data asset ni lineage entre ellos.
¿Necesito una database para ejecutar Dagu?
No. Dagu guarda el estado en archivos y se ejecuta como un binario único. No hay Postgres, daemon ni un webserver aparte que operar, y esa es la principal diferencia de instalación frente a un Dagster self-hosted.
Next step
Start with one workflow.
Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.