PHPackages                             hirale/openmage-redis-queue - 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. [Caching](/categories/caching)
4. /
5. hirale/openmage-redis-queue

Abandoned → [hirale/queue](/?search=hirale%2Fqueue)Magento-module[Caching](/categories/caching)

hirale/openmage-redis-queue
===========================

A queue module for OpenMage and Maho, built on Symfony Messenger. Backend-agnostic (Redis Streams in v3.0).

v3.0.0(3w ago)383↓86.7%32OSL-3.0PHPPHP &gt;=8.3CI passing

Since Jun 9Pushed 3w ago1 watchersCompare

[ Source](https://github.com/hirale/openmage-redis-queue)[ Packagist](https://packagist.org/packages/hirale/openmage-redis-queue)[ RSS](/packages/hirale-openmage-redis-queue/feed)WikiDiscussions master Synced yesterday

READMEChangelog (1)Dependencies (10)Versions (4)Used By (2)

Hirale Queue
============

[](#hirale-queue)

A queue module for **OpenMage and Maho**, built on Symfony Messenger. Backend-agnostic by design: Redis Streams ships in v3.0, with Doctrine / AMQP / SQS as drop-in transports later.

Which version do I need?
------------------------

[](#which-version-do-i-need)

Your platformPackageConstraint**Maho** 26.5+`hirale/queue``^3.0`**OpenMage** 20.17+ (PHP 8.3+)`hirale/queue``^3.0`Older OpenMage / legacy installs`hirale/openmage-redis-queue``^1.0` (frozen, fixes only)One codebase serves both platforms: the module uses OpenMage-era class names that Maho aliases natively, and the only platform difference you will notice is the worker entry point (Maho CLI vs `shell/` scripts).

> v3 was previously published as `hirale/openmage-redis-queue`; the rename to `hirale/queue` reflects the rewrite. Upgrading a v1 install is a breaking change — see *Migrating from v1.x* below.

What's new in v3
----------------

[](#whats-new-in-v3)

- **Symfony Messenger as the bus.** v2's custom `Worker` / `Backoff` / `DeadLetter` / `HandlerRegistry` / `QueueRouter` are gone. v3 plugs into Messenger's middleware pipeline, retry strategy interface, and transport abstraction.
- **Backend-agnostic.** Admin picks Redis / Doctrine / AMQP / SQS from a dropdown; the module assembles the DSN. v3.0 ships Redis; the other transports are wired in v3.x as `composer require symfony/-messenger` adds the needed factory.
- **Dual-platform.** One codebase for OpenMage 20.17+ and Maho 26.5+ (PHP 8.3+); composer conflicts reject older platforms with a clear error.
- **Producer API is typed.** Downstream code dispatches typed message classes: ```
    use Hirale\Queue\Bus;
    Bus::dispatch(new DrainEventsMessage(reason: 'index_events'));
    ```

    Handlers implement `__invoke(MessageClass $message): void`.
- **Per-store retry policy.** Captured at dispatch from the dispatching store's config and travels with the envelope so a worker serving many stores doesn't have to look up live config per message.
- **Save-time validation.** Saving a bad backend config refuses to persist — connection is probed in the admin form's predispatch event and a clear error banner appears.

Requirements
------------

[](#requirements)

- Maho 26.5+ **or** OpenMage 20.17+
- PHP 8.3+
- ext-json, ext-redis (for the Redis backend)
- A Redis server reachable from the workers (TCP or Unix socket)

Install
-------

[](#install)

```
composer require hirale/queue
```

### OpenMage: one-time composer adjustments

[](#openmage-one-time-composer-adjustments)

Two stock-OpenMage facts need one-time tweaks. The pinned `magento-hackathon/magento-composer-installer` cannot serve a project that uses Symfony Messenger: its 3.x/4.x releases require `symfony/console ≤5` (Messenger 7/8 conflicts with `console
