A task orchestration system designed to be efficient, fast and developer-friendly.
As a CTO and founder, I was tired of spending buckets of money to set up and manage Airflow, dealing with multiple databases, countless processes, Docker complexity, and of course its outdated and buggy UI. So we decided to build something that kept what we liked about Airflow and ditched what we didn’t. The result is Gust: a platform that’s 10× more efficient, faster, and far easier to set up.
Gust is the perfect fit for our needs, and I encourage you to try it and push it even further. There’s still plenty of room for improvements and new features. If you spot something or want to contribute an idea, don’t be shy! Drop an Issue or submit a PR.
defmodule HelloWorld do
alias Gust.Flows
use Gust.DSL
require Logger
task :first_task, downstream: [:second_task], store_result: true do
greetings = "Hi from first_task"
Logger.info(greetings)
%{result: greetings}
end
task :second_task, ctx: %{run_id: run_id} do
task = Flows.get_task_by_name_run("first_task", run_id)
Logger.info(task.result)
end
end- macOS/Ubuntu
- Elixir must be at least this version
- Postgres
- Replace
my_appfor your app name and run:
GUST_APP=my_app bash -c "$(curl -fsSL https://raw.githubusercontent.com/marciok/gust/main/setup_gust_app.sh)"
-
Configure Postgres credentials on
my_app/config/dev.exs -
Run database setup:
mix ecto.create --repo Gust.Repo && mix ecto.migrate --repo Gust.Repo -
Run Gust start:
mix gust.start -
Check the docs on how to customize your DAG 🎉
- Task orchestration with Cron-style scheduling and dependency-aware DAGs via the Gust DSL.
- Manual task controls: stop running tasks, cancel retries, and restart tasks on demand.
- Run-time tracking, corrupted-state recovery, and graceful handling of syntax errors during development.
- Retry logic with backoff, plus state clearing for clean restarts.
- Hook for finished dag run.
- Web UI for live monitoring and secrets editing.
Find the best offers and save money on car subscription service.
Gust is released under the MIT License.