marciok

marciok

Gust - A task orchestration system built in Elixir

Hi there! We created Gust: A task orchestrator inspired by Airflow.

For those who have never heard about Aiflow, it’s a Python-based workflow created many years ago by Airbnb.

After many years of using it, we realized that many of our frustrations, such as difficult setup, deployment, high resource consumption, and buggy UI, were symptoms of the system’s lack of high-performance parallel computing primitives. We concluded that we needed the right tool for the job: Elixir. The result was an orchestrator that is 10x more efficient and performant.


How is it positioned in relation to other background processing-related libs and projects?

They all intersect in some way, but each one focuses on different use cases.

Oban (OSS): It’s a background job library; compared to Gust, you would need to manually coordinate job dependencies, with no UI to visualize the task graph, logs, or code. It’s focused on individual jobs, not workflows.

Handoff: It’s a distributed DAG execution engine, no UI or persistence.

Reactor: It’s more similar to Gust, but its steps are not persisted (state is not saved in case of restart). Also, no UI, cron scheduling, and built-in triggers. It’s focused on computational graphs rather than full workflow orchestration.

OpenFn/lightning: Like Gust, it also possesses a UI and an engine to execute workflows; however, it’s not a DAG builder but an orchestrator between integrations, with no native DSL.

Gust combines a bit of each: a UI, task coordination, cron/other triggers, and built-in secret storage for use inside graphs. It’s a full-fledged orchestration system.

Suggestions and contributions are very welcome!

https://github.com/marciok/gust

Most Liked

sorentwo

sorentwo

Oban Core Team

It does. It’s paid because we provide a service that people rely on. It is actively developed and supported. That’s our job.

There’s no chance of Oban (or Pro) going unmaintained, unsupported, or abandoned because we burned out or got a new job that doesn’t offer 20% time.

P.S. It’s $135/mo with the annual plan :wink:

marciok

marciok

Oban is awesome! Gust has a different focus; the two can absolutely coexist & complement each other.

marciok

marciok

I get your point! Gust’s initial goal is to be an Airflow alternative, not a background job lib.

At its core, Gust is a DAG orchestrator; it really shines when you have complex workflow logic that processes unstructured data, where you need quick iteration.

Example: “You’re ingesting unstructured data from dozens of websites (HTML pages, PDFs, APIs with inconsistent schemas) and turning it into structured data.”

Overall, the Gust project is an umbrella app, with the UI and processing logic split; in theory, it is possible to use the Gust UI to monitor Oban jobs or create workflows with them.

Where Next?

Popular in Announcing Top

sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 42920 311
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
oltarasenko
Dear Elixir community, After a year of development, bug fixes, and improvements, we are proudly ready to share the release of Crawly 0.1...
New
treble37
Just looking for a little feedback on a tiny helper library I built - Sometimes I find the need to convert maps with atom keys to maps w...
New
josevalim
Hello everyone, We have just released NimbleCSV which is a small and fast CSV parsing library for Elixir. It allows developers to define...
New
Hal9000
Here is my first stab at this. README pasted below. https://github.com/Hal9000/elixir_random Comments and critiques are welcome. Thank...
New
markmark206
simple_feature_flags is a tiny package that lets you turn features on or off based on which environment (e.g. localhost, staging, product...
New
anshuman23
Hello all, I have been working on my proposed project called Tensorflex as part of Google Summer of Code 2018.. Tensorflex can be used f...
New
zoltanszogyenyi
Hey everyone :waving_hand: Excited to join this forum - I am one of the founders and current project maintainers of a popular and open-s...
New
wfgilman
I’ve cleaned up and open sourced three financial libraries I was using for my company. They are bindings for the APIs of these three comp...
New

Other popular topics Top

New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 42920 311
New
chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 39297 209
New

Latest on Elixir Forum

We're in Beta

About us Mission Statement