Dagu vs Dagster

Dagu et Dagster résolvent des problèmes différents.

Dagster est un orchestrateur de données Python bâti autour des software-defined assets et de la lineage. Dagu est un binaire unique qui exécute des workflows YAML appelant les commandes que vous avez déjà. Cette page explique où chacun convient.

Un workflow qui appelle les commandes que vous exécutez déjà
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 binaire autonome, sans Postgres, daemon ni webserver à exploiter

Les workflows sont du YAML déclaratif, pas un framework Python

État stocké dans des fichiers, sans database externe ni message broker

Executors pour shell, Docker, HTTP, SSH, sous-workflows, SQL et étapes AI-agent

Ce que Dagu apporte

Dagu planifie, relance et observe des commandes. Vous écrivez le workflow en YAML et Dagu l'exécute comme un seul processus adossé à des fichiers. Le Web UI montre les exécutions, les logs et l'historique sans service supplémentaire.

  • Exécute scripts, binaires, containers, appels HTTP, commandes SSH, SQL et étapes AI-agent.
  • Démarre comme un seul binaire puis évolue vers l'exécution en file ou distribuée.
  • Consulte l'historique des exécutions et les logs dans le Web UI sans monter de database.

En quoi Dagster diffère

Dagster traite le data asset comme l'unité de travail. Vous déclarez les asset en Python, et la plateforme suit la lineage, les partition et les materialization entre eux. Une installation self-hosted fait tourner un webserver et un daemon adossés à Postgres.

  • Les software-defined assets modélisent les tables et fichiers produits par un pipeline.
  • Les partition et backfill permettent de traiter et retraiter des tranches de données.
  • L'IO manager gère la lecture et l'écriture, gardant le code des asset concis.

Quand choisir Dagster

Si votre travail porte fondamentalement sur les data asset et leur lineage, Dagster est l'outil le plus solide. Dagu n'a pas de software-defined assets, pas d'IO manager, et n'est pas un framework Python, donc il ne modélise pas une plateforme de données comme Dagster.

  • Vous voulez la lineage et l'observabilité au niveau asset sur les modèles dbt et les tables.
  • Les jeux de données partitionnés, les backfill et les IO manager sont au cœur de vos pipelines.
  • L'équipe écrit les pipelines en Python et veut un modèle centré sur les asset.

Dagu vs Dagster en bref

Dimension
Dagu
Typical alternative
Modèle
Workflows YAML déclaratifs qui appellent des commandes.
software-defined assets et lineage définis en Python.
Self-hosting
Un binaire avec état dans des fichiers, sans database.
Webserver et daemon adossés à une database Postgres.
Cas idéal
Scripts, containers, tâches d'exploitation et commandes AI-agent.
Plateformes de données qui ont besoin de modéliser asset et lineage.

FAQ

Practical questions before adopting Dagu

Dagu remplace-t-il Dagster ?

Pas pour le travail sur les data asset. Dagster est conçu pour les software-defined assets, la lineage et les partition, ce que Dagu ne fait pas. Dagu remplace Dagster seulement quand vous aviez surtout besoin de planifier et d'observer des commandes et que le modèle d'asset dépassait le besoin.

Dagu peut-il orchestrer des data pipelines ?

Oui, si le pipeline s'exprime en commandes, containers, appels HTTP, commandes SSH, SQL ou sous-workflows. Dagu orchestre les étapes mais ne suit pas les data asset ni la lineage entre elles.

Faut-il une database pour exécuter Dagu ?

Non. Dagu garde l'état dans des fichiers et tourne comme un binaire unique. Il n'y a ni Postgres, ni daemon, ni webserver séparé à exploiter, et c'est la principale différence d'installation avec un 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.

Install Dagu