Hi HN! I'm the author of Dagu, a workflow engine that's been in development for a few years. Just released v1.17.0-beta.1 with some significant improvements. The core idea: define workflows in YAML, run them as scheduled jobs or on-demand. Single Go binary, no external dependencies, stores everything locally. New in this release: - Nested DAGs - workflows can call other workflows - Refactored execution history storage (10x faster for large histories) - Better debugging UI showing precondition results and variable outputs - Proper job queue management Example workflow: ```yaml name: data-pipeline schedule: "0 10 * * *" steps: - name: fetch-data command: curl https://api.example.com/data > raw.json - name: process command: jq '.items[] | select(.active)' raw.json > processed.json depends: fetch-data - name: load command: python load_to_db.py processed.json depends: process ``` Try it: ``` docker run --rm -p 8080:8080 ghcr.io/dagu-org/dagu:1.17.0-beta.1 dagu start-all ``` Then visit http://localhost:8080 We use it in production for ETL pipelines, report generation, and system maintenance tasks. It's not trying to be Airflow - no distributed execution, no Python dependency hell, just a reliable way to run workflows. GitHub: https://github.com/dagu-org/dagu Would love feedback on the beta, especially around the nested DAG implementation and any performance issues you encounter. |