fireproofsocks

fireproofsocks

Differences between Oban Workflows and Batches

I’m trying to wrap my head around some Oban workflows. You can group multiple jobs under a single workflow (I assume they share the same workflow ID). From the point of observability, is this any different than batching a group of jobs under a shared batch ID? From db queries, we can see which jobs were grouped together in either case… workflows allow us to specify dependencies… is there any other fundamental difference between workflows and batches? Is a workflow with no dependencies more or less the same as a batch? Is a batch basically a workflow with no special options?

Most Liked

sorentwo

sorentwo

Oban Core Team

Workflows are about dependencies between jobs, like a directed graph. Batches are about events when job states change. The purpose of a batch isn’t just to group the jobs, but to have handler callback jobs when all jobs are attempted, completed, etc.

A workflow with no dependencies is less useful than a batch, because there aren’t any callbacks. Workflows are entirely meant for dependencies between jobs.

There’s an older, slightly outdated, Composing Jobs with Oban Pro article that outlines the differences. That article is becoming a guide in the upcoming Pro v1.5, and the differences should be much clearer.

Where Next?

Popular in Questions Top

vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
RisingFromAshes
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New

Other popular topics Top

nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 55125 245
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 44778 311
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New

We're in Beta

About us Mission Statement