I wanted something simple and reliable, but with the features of a modern data orchestrator:
- Stateful: It uses a local SQLite DB to track every run and retry. If a task fails, you can fix it and resume.
- Deterministic: Strict topological ordering based on depends_on logic.
- Static: A single Go binary. Just drop it in your path.
- Git-Native: Workflows are defined in TOML, making them easy to version control and code-review.
It’s currently v0.1.0. I’m using it for local ETL and complex build scripts.
Repo: https://github.com/joelfokou/workflow
I’d love to hear your thoughts on the approach, especially regarding the decision to use SQLite for local state persistence.