26 karma · joined April 24, 2022
Lately, I’ve been using it to automate my daily workflows with an AI agent harness like opencode. Dagu helps you manage local, private workflows. It gives you a flexible Kanban-style view, a declarative workflow language with validation, and the basics you expect from production workflow infrastructure: logs, retries, status tracking, and more.
The best part of having a workflow language is maintainability. Any AI agent can help create or debug your workflows. You can do something similar with plain Bash scripts, but Bash quickly becomes hard to debug and maintain.
Because Dagu is DAG-based, it automatically runs independent steps in parallel. Each step is validated and logged separately, which makes it much easier for an AI agent to understand what failed and fix it.
Give it a try!
There's no need for humans to write DAGs anymore, yet they remain human-readable. I truly believe this is the future of workflow orchestration.
Dagu is designed for teams that find Airflow overkill but need more than cron. It's a single binary with zero dependencies that runs anywhere - from Raspberry Pi to cloud clusters.
What's new in v1.18:
- Distributed execution - Run workflow steps across multiple machines - OIDC authentication - Enterprise-ready auth for the Web UI - High availability - Redundant schedulers with automatic failover
Example workflow: ``` steps: - name: fetch data command: curl https://api.example.com/data output: DATA
- name: process
command: python process.py
env:
- INPUT: ${DATA}
retryPolicy:
limit: 3
intervalSec: 30
backoff: 2.0
```No need for a database or complex setup. Just write your YAML workflow and run it with `dagu start my_workflow.yaml`.
Would love to hear your feedback!
I am developing jobctl with Go. https://github.com/yohamta/jobctl/
Why?? What is the motivation?
Currently, my environment has many problems. Hundreds of complex cron jobs are registered on huge servers and it is impossible to keep track of the dependencies between them. If one job fails, I don't know which job to re-run. I also have to SSH into the server to see the logs and manually run the shell scripts one by one.
So I needed a tool that can explicitly visualize and manage the dependencies of the pipeline.
How nice it would be to be able to visually see the job dependencies, execution status, and logs of each job in a web browser, and to be able to rerun or stop a series of jobs with just a mouse click!
Why not alternatives?
Well, I considered many potential tools such as Airflow, Rundeck, Luigi, DigDag, JobScheduler, etc.
But unfortunately, they were not suitable for my existing environment. Because they required a DBMS(Database Management System) installation, relatively high learning curves, and more operational overheads. We only have a small group of engineers in our office and use a less common DBMS.
Finally, I decided to build my own tool that would not require any DBMS server, any daemon process, or any additional operational burden and is easy to use.