Hey @cevado, I was actually using elixir and Oban specifically when I started using Temporal.
I looked at Oban Pro again, it’s nice but I still see it serving a different process.
My understanding is (correct if wrong)
- Oban - solid worker queues
- Oban Pro - orchestration platform
- Temporal - Durable execution and orchestration platform
The durable part has great benefits if needed but also costs if throughput is a key driver. It’s not better, just different.
At my time I needed long running workflows that could span days, had manual steps in the middle and needed to survive failures and restarts for all that time.
Temporal essentially a event system under the hood and all worker scheduling and state events are is persisted at every step. So if the whole system goes down it can just replay all events and catch-up. It also supports signals which are external events that can be sent to the workflow so the support for external manual steps like approval were trivial to add.
Generally I’ve no bad word to say against Oban, and it’s only got better since I looked at it. But I still thing it serves very different purposes and while you can build some of the things to Oban to make it somewhat act like Temporal it’s not as trivial as it first seems when you get into the weeds.
For example as noted, keeping all this state and replaying several days later is problematic if you need to upgrade these workflows. Temporal has support for workflow versioning that would definitely not be trivial to replicate.
On costs, when I said we are comparing “apples to oranges” - the costs from Temporal are only their cloud offering. To run on your own infra (like you would with Oban Pro) it’s free and fully open source.
What you may optionally want to pay for cloud is their infra and managed service. Don’t need to I use it if your projects don’t have much demand and are happy managing your own infra.
For me though the main driver was that Temporal was simple, just add some annotations to functions and register them and you get full durable and reliable execution, took all the hard thought out of distributed orchestration.
My point here was merely that I think Temporal is a good product and fits well in the Elixir ecosystem and worth a look.
If you don’t need the guarantees Temporal offers for your use case that’s cool, but I know many projects that do and I would rather use tools that are well tested on this than build my own attempt on top of technologies with different goals. Even on “relic” software 