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.

Un workflow que llama a los comandos que ya ejecutas
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

Modelo
Dagu

Workflows YAML declarativos que llaman a comandos.

Dagster

software-defined assets y lineage definidos en Python.

Self-hosting
Dagu

Un binario con estado en archivos, sin database.

Dagster

Webserver y daemon respaldados por una database Postgres.

Mejor caso
Dagu

Scripts, containers, tareas de operación y comandos de AI-agent.

Dagster

Plataformas de datos que necesitan modelar asset y lineage.

In depth

Where each tool fits

01

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.
02

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.
03

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.