Dagu vs Windmill
Dagu vs Windmill: YAML declarativo frente a una plataforma de scripts y apps.
Ambos corren self-hosted y son rápidos. Windmill convierte scripts en workflows, webhooks y apps low-code, y usa PostgreSQL. Dagu es un único binario que ejecuta tus comandos con YAML declarativo, sin base de datos que operar.
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 único, sin PostgreSQL
Los workflows son YAML declarativo sobre comandos existentes
Executors para shell, Docker, HTTP, SSH, SQL, sub-workflows y agentes de IA
Corre en local, por cola o distribuido
Dos formas de definir el trabajo
Windmill es una plataforma code-first. Escribes scripts en Python, TypeScript, Go, Bash o SQL, y añade a cada uno un webhook y una UI generada. Dagu mantiene el workflow en YAML y trata tus scripts y binarios como pasos.
- Windmill almacena y ejecuta scripts dentro de la plataforma con formularios de entrada generados.
- Dagu define el grafo en YAML versionado y llama comandos.
- Ambos ofrecen dependencias, retries, planificación e historial de ejecución.
Qué ejecutas para operarlo
Windmill necesita PostgreSQL para el estado y su cola de jobs, y el montaje típico corre contenedores server y worker sobre ella. Dagu es un binario único que guarda el estado en archivos, así que no hay base de datos que aprovisionar, respaldar o actualizar.
- Dagu arranca como un proceso apoyado en archivos locales.
- Añade cola y workers después, sin cambiar el modelo de workflow.
- Windmill escala bien, pero asume PostgreSQL presente y gestionado.
Cuándo elegir Windmill
Windmill hace más que orquestación, y esa amplitud es el punto. Si quieres un lugar para alojar scripts como endpoints compartibles y construir apps internas y UIs alrededor, Windmill cubre terreno donde Dagu no entra.
- Quieres un constructor de apps y UI low-code, no solo un ejecutor.
- Quieres formularios generados, pasos de aprobación y muchas integraciones integradas.
- Tu equipo prefiere escribir la lógica como scripts gestionados en vez de llamar comandos externos.
Windmill vs. Dagu en breve
FAQ
Practical questions before adopting Dagu
¿Dagu reemplaza a Windmill?
No del todo. Dagu reemplaza la parte de orquestación: planificación, dependencias, retries, logs y una UI para las ejecuciones. No ofrece el constructor de apps low-code de Windmill, sus UIs generadas ni su amplio catálogo de integraciones. Si solo necesitas planificar y observar comandos, Dagu es la opción más ligera.
¿Dagu necesita PostgreSQL?
No. Dagu guarda el estado en archivos locales y corre como un binario único, así que no hay base de datos que instalar o gestionar. Windmill depende de PostgreSQL para el estado y su cola de jobs.
¿Dagu puede ejecutar scripts de Python y TypeScript?
Sí. Un paso puede ejecutar cualquier comando, así que Python, TypeScript, Bash o un binario compilado funcionan. La diferencia es que Dagu llama scripts en el disco en lugar de alojarlos y gestionarlos como hace Windmill.
Start with one workflow.
Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.