PHPackages                             vanilla/queue-interop - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. vanilla/queue-interop

ActiveLibrary[Queues &amp; Workers](/categories/queues)

vanilla/queue-interop
=====================

Queue interop.

v1.0(7y ago)0791MITPHPPHP &gt;=7.0

Since Aug 7Pushed 6y ago4 watchersCompare

[ Source](https://github.com/vanilla/queue-interop)[ Packagist](https://packagist.org/packages/vanilla/queue-interop)[ RSS](/packages/vanilla-queue-interop/feed)WikiDiscussions master Synced 5d ago

READMEChangelog (1)Dependencies (2)Versions (3)Used By (1)

Queue Interop
=============

[](#queue-interop)

This package provides abstraction and interfaces necessary for both job payloads and job processors to interact together.

From a job payload perspective
------------------------------

[](#from-a-job-payload-perspective)

All job payloads must implement the `RunnableJobInterface`. A job processor will then call the following methods in order:

- `RunnableJobInterface::setup()`
- `RunnableJobInterface::run()`
- `RunnableJobInterface::teardown()`

Beside this, all open source **Vanilla jobs must extend** the `AbstractJob` class so that jobs can be run directly on web server but also anywhere else by implementing a custom job processor.

Services
--------

[](#services)

Services are made accessible to job payloads. But in order to access them, a job must implement the proper `aware` interface. By implementing the `aware` interface, a job processor will inject the corresponding service thru a setter method prior to running the payload.

Here's the list of services available:

#### Database

[](#database)

A job can implement `DatabaseAwareInterface` to get injected with the [Garden\\Db\\Db](https://github.com/vanilla/garden-db) object.

#### Vanilla configs and locales context

[](#vanilla-configs-and-locales-context)

A job can implement `VanillaContextAwareInterface` to get injected with the `VanillaContextInterface` interface.
With `VanillaContextInterface`, a job can access a `ConfigInterface` to manage both configs and locales in Vanilla.

#### Scheduler

[](#scheduler)

A job can implement `SchedulerAwareInterface` to get injected with the `SchedulerInterface`. With `SchedulerInterface`, a job can also schedule other jobs from within its payload.

From a job runner perspective
-----------------------------

[](#from-a-job-runner-perspective)

A job processor is responsible to provide implementation for the following interfaces:

- `JobBridgeInterface`
- `JobContextInterface`
- `SchedulerInterface`
- `VanillaContextInterface`
- `ConfigInterface`

It is also responsible to inject services to jobs that implements the following interfaces:

- `DatabaseAwareInterface`
- `SchedulerAwareInterface`
- `VanillaContextAwareInterface`

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 62.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2839d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/021b2a80f2781914dbb04a3aec8fa98a286915043f9b695cc158416c0c681b1e?d=identicon)[kaecyra](/maintainers/kaecyra)

---

Top Contributors

[![evach-vf](https://avatars.githubusercontent.com/u/15455914?v=4)](https://github.com/evach-vf "evach-vf (15 commits)")[![kaecyra](https://avatars.githubusercontent.com/u/248212?v=4)](https://github.com/kaecyra "kaecyra (5 commits)")[![DaazKu](https://avatars.githubusercontent.com/u/2412909?v=4)](https://github.com/DaazKu "DaazKu (3 commits)")[![egarciajulia](https://avatars.githubusercontent.com/u/44788295?v=4)](https://github.com/egarciajulia "egarciajulia (1 commits)")

---

Tags

non-production

### Embed Badge

![Health badge](/badges/vanilla-queue-interop/health.svg)

```
[![Health](https://phpackages.com/badges/vanilla-queue-interop/health.svg)](https://phpackages.com/packages/vanilla-queue-interop)
```

###  Alternatives

[symfony/messenger

Helps applications send and receive messages to/from other applications or via message queues

1.1k120.7M958](/packages/symfony-messenger)[symfony/amazon-sqs-messenger

Symfony Amazon SQS extension Messenger Bridge

4612.5M15](/packages/symfony-amazon-sqs-messenger)[pmg/queue

A task queue framework for PHP

13460.6k8](/packages/pmg-queue)[webfactory/icu-translation-bundle

Enables ICU message formatting for translations in Symfony applications.

2761.8k](/packages/webfactory-icu-translation-bundle)[amphp/cluster

Building multi-core network applications with PHP.

6224.8k1](/packages/amphp-cluster)[workerman/rabbitmq

Asynchronous rabbitmq client for PHP based on workerman.

4313.4k6](/packages/workerman-rabbitmq)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
