Welcome to the second day of Pro v1.5 Launch Week!
Today, we’re showcasing a couple of database driven features that expand where Pro can be deployed and drastically improve performance while reducing database load.
Distributed PostgreSQL
There were a smattering of PostgreSQL features used in Oban and Pro that prevented it from running in distributed PostgreSQL clients such as Yugabyte.
A few table creation options prevented running the migrations due to unsupported database features. Then there were advisory locks, which are part of how Oban normally handles unique jobs, and how Pro coordinates queues globally.
We’re festive with fist-bumps and delighted to report that we’ve worked around both of these limitations and it’s possible to run Oban and Pro on Yugabyte with most of the same functionality as regular PostgreSQL (global, rate limits, queue partitioning).
Take a look:
Running Yugabyte is also possible with the upcoming Oban release, but without any unique job support.
Enhanced Uniqueness
Oban’s standard unique options are robust, but they require multiple queries and centralized locks
to function. Not to mention, the period
controls cause more confusion than they’re worth…most
of the time.
Now Pro supports an simplified, opt-in unique mode designed for speed, correctness, scalability,
and simplicity. The enhanced hybrid
and simple
modes allows slightly fewer options while
boosting insert performance 1.5x-3.5x, from reducing database load with fewer queries,
improving memory usage, and staying correct across multiple processes/nodes.
See the new mode in action:
More Launch Week
- Day 1 — Unified Migrations, Preemptive Chaining, and Worker Aliases
- Day 3 — Job Decorators
- Day 4 — Overhauled Batches and Improved Workflows
- Day 5 — Hybrid Compositions and Release Day
See you tomorrow!
As usual, if you have any questions or comments, ask in the Elixir Forum or the #oban channel on Elixir Slack. For future announcements and insight into what we're working on next, subscribe to our newsletter.