Dagu vs Windmill

Dagu vs Windmill: deklaratives YAML gegen eine Skript- und App-Plattform.

Beide laufen self-hosted und sind schnell. Windmill macht aus Skripten Workflows, Webhooks und Low-Code-Apps und nutzt PostgreSQL. Dagu ist ein einzelnes Binary, das Ihre Kommandos über deklaratives YAML ausführt, ohne zu betreibende Datenbank.

Ein Workflow, der Ihre Kommandos aufruft
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]

Ein einzelnes Binary, ohne PostgreSQL

Workflows sind deklaratives YAML über bestehende Kommandos

Executors für shell, Docker, HTTP, SSH, SQL, Sub-Workflows und KI-Agenten

Lokal, per Queue oder verteilt ausführbar

Zwei Wege, Arbeit zu definieren

Windmill ist eine code-first Plattform. Sie schreiben Skripte in Python, TypeScript, Go, Bash oder SQL, und sie versieht jedes mit einem Webhook und einer generierten UI. Dagu hält den Workflow in YAML und behandelt Ihre Skripte und Binaries als Schritte.

  • Windmill speichert und führt Skripte in der Plattform aus und generiert Eingabeformulare.
  • Dagu definiert den Graphen in versioniertem YAML und ruft Kommandos auf.
  • Beide bieten Abhängigkeiten, Retries, Planung und Ausführungshistorie.

Was Sie zum Betrieb brauchen

Windmill braucht PostgreSQL für den Zustand und seine Job-Queue, und das übliche Setup fährt server- und worker-Container darüber. Dagu ist ein einzelnes Binary, das den Zustand in Dateien hält, also keine Datenbank zum Bereitstellen, Sichern oder Aktualisieren.

  • Dagu startet als ein Prozess auf Basis lokaler Dateien.
  • Queue und Worker lassen sich später ergänzen, ohne das Workflow-Modell zu ändern.
  • Windmill skaliert gut, setzt aber ein vorhandenes und verwaltetes PostgreSQL voraus.

Wann Windmill die bessere Wahl ist

Windmill leistet mehr als Orchestrierung, und diese Breite ist der Sinn. Wenn Sie Skripte als teilbare Endpunkte hosten und darum interne Apps und UIs bauen wollen, deckt Windmill ein Feld ab, in das Dagu nicht geht.

  • Sie wollen einen Low-Code-Builder für Apps und UIs, nicht nur einen Runner.
  • Sie wollen generierte Formulare, Approval-Schritte und viele eingebaute Integrationen.
  • Ihr Team schreibt Logik lieber als verwaltete Skripte, statt externe Kommandos aufzurufen.

Windmill vs. Dagu im Überblick

Dimension
Dagu
Typical alternative
Authoring
Deklaratives YAML, das Ihre Kommandos aufruft.
In der Plattform gehostete Skripte in Python, TypeScript, Go, Bash oder SQL.
Runtime
Einzelnes Binary, dateibasierter Zustand, keine Datenbank.
Rust-Dienste und Worker auf einer PostgreSQL-Queue.
Umfang
Orchestrierung mit shell-, Docker-, HTTP-, SSH-, SQL- und KI-Agenten-Schritten.
Workflows plus Low-Code-Builder für Apps und UIs mit Approval Flows.

FAQ

Practical questions before adopting Dagu

Ersetzt Dagu Windmill?

Nicht vollständig. Dagu ersetzt den Orchestrierungsteil: Planung, Abhängigkeiten, Retries, Logs und eine UI für Ausführungen. Es bietet nicht den Low-Code-App-Builder von Windmill, die generierten UIs oder dessen breiten Integrationskatalog. Wenn Sie nur Kommandos planen und beobachten wollen, ist Dagu die leichtere Option.

Braucht Dagu PostgreSQL?

Nein. Dagu hält den Zustand in lokalen Dateien und läuft als ein Binary, also keine Datenbank zum Installieren oder Verwalten. Windmill stützt sich für Zustand und Job-Queue auf PostgreSQL.

Kann Dagu Python- und TypeScript-Skripte ausführen?

Ja. Ein Schritt kann jedes Kommando ausführen, also funktionieren Python, TypeScript, Bash oder ein kompiliertes Binary. Der Unterschied ist, dass Dagu Skripte von der Platte aufruft, statt sie zu hosten und zu verwalten wie Windmill.

Start with one workflow.

Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.

Install Dagu