Skip to main content

CHANGELOG.md

# Changelog

## 0.1.0 - 2026-07-15

Initial experimental release of DuckDB-backed Oban support through QuackDB.

### Added

- Added `Oban.Engines.QuackDB` with job insertion, claiming, scheduling, lifecycle, bulk operation,
  pruning, rescue, and update support.
- Added `Oban.Migrations.QuackDB` with DuckDB-native job storage, a fetch index, and serialized
  uniqueness locking.
- Added exact and keyed uniqueness checks for job arguments and metadata.
- Added bounded retries for classified QuackDB transaction conflicts, with support for disabling
  retries inside nested transaction contexts.
- Added single-node support for Oban's Cron, Pruner, and Lifeline plugins.
- Added explicit validation for unsupported prefixes, peers, notifiers, and Reindexer
  configuration.

### Compatibility

- Requires Elixir 1.19+, Oban 2.23.x, QuackDB 0.5.17+, and DuckDB 1.5.3+.
- Supports single-node operation with an isolated peer and local process-group notifications.
- Does not support prefixes, distributed peers, or the PostgreSQL-specific Reindexer plugin.
- Oban 2.23.0 doesn't support `testing: :manual` with an external migrator outside an Ecto
  migration runner; normal runtime operation and direct package migrations are supported.