Skip to content

build(deps): bump oban from 2.20.3 to 2.21.1#521

Open
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/hex/oban-2.21.1
Open

build(deps): bump oban from 2.20.3 to 2.21.1#521
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/hex/oban-2.21.1

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Apr 3, 2026

Bumps oban from 2.20.3 to 2.21.1.

Release notes

Sourced from oban's releases.

v2.21.0

This release requires PostgreSQL 14+, adds a new suspended job state, includes targeted performance improvements for job execution and notifications, and a variety of bug fixes.

See the Upgrade Guide for upgrade instructions.

🚟 Suspended State

The new suspended state allows jobs to be held without processing until they are explicitly resumed. Unlike scheduled jobs that become available when their time comes, suspended jobs remain paused indefinitely until an external action resumes them.

While Oban itself doesn't make use of suspended jobs, the state enables Pro workflows to defer execution without any workarounds or performance impact.

📏 Performance Tweaks

Two targeted optimizations reduce overhead in high-throughput systems:

  • Selective Compression — Notifications under 512 bytes skip gzip compression entirely, avoiding CPU overhead for typical small messages like queue signals and insert events. Encoding is 12x faster for small payloads (4μs → 0.3μs) and wire size is halved (80 → 41 bytes). Large payloads still compress with no regression.

  • Batched Process Metrics — Job execution telemetry now gathers memory and reduction metrics in a single Process.info/2 call instead of two separate calls, cutting per-job measurement overhead in half.

v2.21.0 — 2026-03-23

Changes

  • [Oban] Support a minimum of PostgreSQL 14+

    PG 12 was end of life in November 2024, and PG 13 was end of life in November 2025. We now support PG 14+, and with PG 19 due out in a few months, we're dropping official support for older versions.

Enhancements

  • [Oban] Add suspended job state

    The suspended state allows jobs to be held without processing until they are explicitly resumed. It is accepted for unique and replace operations, and is part of the incomplete state group. The suspended state is used by Pro extensions rather than by Oban itself.

  • [Worker] Elevate __opts__/0 to a documented callback

    The __opts__/0 function, which returns a worker's compile-time options, is now a public callback with full documentation. This makes it easier to introspect worker configuration at runtime, such as checking the default queue, max attempts, or uniqueness settings for any worker module.

  • [Period] Document and publicize Oban.Period module

    The t:Period.t() type is referenced by several public types and should be visible to users in documentation.

  • [Executor] Batch process info calls in executor measurements

    Reduces system call overhead by combining separate memory and reductions queries into a single Process.info/2 call per job execution.

  • [Notifier] Skip compression for small notification payloads

    Notifications under 512 bytes are sent as plain JSON, avoiding gzip overhead for typical small messages like queue signals and insert events.

    Encode is 12x faster for small payloads (4.08 μs → 0.34 μs) and decode is 6.7x faster (1.78 μs → 0.26 μs). Wire size is halved (80 → 41 bytes).

... (truncated)

Changelog

Sourced from oban's changelog.

v2.21.1 — 2026-03-26

Bug Fixes

  • [Migration] Use ALTER TYPE to add suspended to state enum

    The previous DO/BEGIN technique attempted to alter the enum type with a enum rename/column copy dance in order for the type to be usable within the same transaction. That's not necessary, and the column copy isn't appropriate for larger tables. As we now require PG 14+, we can reliably use ALTER TYPE to add the suspended value.

v2.21.0 — 2026-03-25

Changes

  • [Oban] Support a minimum of PostgreSQL 14+

    PG 12 was end of life in November 2024, and PG 13 was end of life in November 2025. We now support PG 14+, and with PG 19 due out in a few months, we're dropping official support for older versions.

Enhancements

  • [Oban] Add suspended job state

    The suspended state allows jobs to be held without processing until they are explicitly resumed. It is accepted for unique and replace operations, and is part of the incomplete state group. The suspended state is used by Pro extensions rather than by Oban itself.

  • [Worker] Elevate __opts__/0 to a documented callback

    The __opts__/0 function, which returns a worker's compile-time options, is now a public callback with full documentation. This makes it easier to introspect worker configuration at runtime, such as checking the default queue, max attempts, or uniqueness settings for any worker module.

  • [Period] Document and publicize Oban.Period module

    The t:Period.t() type is referenced by several public types and should be visible to users in documentation.

  • [Executor] Batch process info calls in executor measurements

    Reduces system call overhead by combining separate memory and reductions queries into a single Process.info/2 call per job execution.

  • [Notifier] Skip compression for small notification payloads

    Notifications under 512 bytes are sent as plain JSON, avoiding gzip overhead for typical small messages like queue signals and insert events.

... (truncated)

Commits
  • 308ef57 Release v2.21.1
  • 89ee1d5 Use ALTER TYPE to add suspended to state enum
  • fb349da Remove optional note on the v14 migration
  • 64b34b3 Release v2.21.0
  • 0f0f11e Remove wrapper from notifier LISTEN/UNLISTEN
  • 78b70ae Skip compression for small notification payloads
  • a980694 Batch process info calls in executor measurements
  • b57cd5c Document and publicize Oban.Period module
  • 561170c Use type swap to safely add enum values
  • fff8088 Support a minimum of PostgreSQL 14+
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [oban](https://github.com/oban-bg/oban) from 2.20.3 to 2.21.1.
- [Release notes](https://github.com/oban-bg/oban/releases)
- [Changelog](https://github.com/oban-bg/oban/blob/main/CHANGELOG.md)
- [Commits](oban-bg/oban@v2.20.3...v2.21.1)

---
updated-dependencies:
- dependency-name: oban
  dependency-version: 2.21.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file elixir Pull requests that update Elixir code labels Apr 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file elixir Pull requests that update Elixir code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants