sheharyarn/que
66.4
Adequate · 3 October 2026
1.2k
lines of production code
Elixir
primary language
2
measurements over time
What this system is
Que is a background job processing library for Elixir that manages job execution, queuing, and worker lifecycle through a supervision tree. It provides persistent job storage using the Mnesia database via the Memento library, ensuring jobs survive application restarts. The system supports configurable concurrency, compile-time validation, and lifecycle callbacks for job success and failure handling.
Features
Added mix que.setup task for Mnesia persistence
A new Mix task, \mix que.setup\, has been added to initialize the Mnesia database schema and job database on disk. This allows Que jobs to be persisted beyond memory, addressing the default behavior where jobs are not persisted. Users can run this task after configuring the Mnesia directory in their \config.exs\ file to enable persistent job storage.
lib/mix · high confidence
Initial release of the Que background job processing library
Introduces the core components for the Que library, including \Que.Job\ for managing job state and execution, \Que.Queue\ for handling job storage and retrieval, and \Que.Server\ as a GenServer to process jobs for specific workers. The update adds \Que.ServerSupervisor\ to dynamically spawn and manage server processes per worker, replacing the previous supervisor strategy. It also implements \Que.Worker\ with a macro that enforces the \perform/1\ callback and validates concurrency settings at compile time, along with support for \on\_setup\, \on\_teardown\, \on\_success\, and \on\_failure\ callbacks. Persistence is initialized via Mnesia, and the system automatically resumes incomplete jobs on startup.
lib/que · high confidence
Behavioural changes
Introduces Persistence behavior with Mnesia adapter delegation
The \Que.Persistence\ module is introduced as a standardized behavior for job storage, providing a high-level API that delegates all operations to the \Que.Persistence.Mnesia\ adapter. This change establishes a consistent interface for finding, inserting, updating, and deleting jobs, as well as querying jobs by status (completed, incomplete, failed) and worker, ensuring that the underlying database layer can be swapped or extended while maintaining a uniform contract for the rest of the application.
lib/que/persistence · high confidence
Migrate to Elixir 1.10+ config syntax and configure Mnesia/Que
The configuration file has been updated to use the modern \import Config\ syntax instead of the deprecated \use Mix.Config\, ensuring compatibility with recent Elixir versions. Additionally, a specific Mnesia directory path is now configured to include the Mix environment and node name, and logging for the \:que\ library is set to medium level when running in the test environment.
config · high confidence
Mnesia persistence adapter implementation
The Mnesia adapter for job persistence has been refactored to use the Memento library instead of the previously used Amnesia library. The table schema and query logic are now defined in a dedicated \DB\ module using Memento's table definitions, while the main \Mnesia\ module delegates persistence operations (such as finding, inserting, updating, and deleting jobs) to this new structure. This change also introduces a \setup!/0\ function to automatically create the Mnesia schema, database, and tables on disk, ensuring jobs are persisted across application restarts.
lib/que/persistence/mnesia · high confidence
Que is now a standard OTP Application
Que now implements the Application behaviour, meaning it starts its own supervision tree automatically when included in your project's application list. This change simplifies setup by removing the need for manual initialization steps; the library now handles its own boot process and integrates directly with the Erlang VM's application manager.
lib · high confidence
Que v0.12.0: Elixir 1.19/OTP 28 support and Memento update
This release updates the project to support Elixir 1.19 and Erlang/OTP 28, with a minimum supported Elixir version of 1.16. It also upgrades the underlying Mnesia persistence layer to use the Memento library, replacing the previous Amnesia dependency, and removes deprecated warnings. The changelog notes that while the public API remains unchanged, the switch to Memento could potentially cause unexpected regressions in edge cases.
(repo-wide) · high confidence
Test coverage
Added comprehensive test suite for Que background job processing; Added test suite for Mnesia persistence layer; Added test support infrastructure and helpers.
Dependencies
Initial release of Que v0.12.0 with Memento and ExDoc dependencies
This change introduces the initial dependency configuration for the Que project, locking in Memento v0.6.0 for background job processing, ExUtils v0.1.7, and documentation tools ExDoc and InchEx. It also updates the minimum supported Elixir version to 1.16 and configures the project for Hex package publishing with proper metadata and compilation paths.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 66 → 66 (+0.6)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 99 → 99 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 55 → 55 (+0.0)
- Readiness 67 → 69 (+2.4)
- Security 100 → 100 (+0.0)
Findings
- No change — the same findings as the prior survey.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
sheharyarn/que was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 860826798a127f32c88e0e49fecb0f49bb74ec80 — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-8fe32cd45d00.