PHPackages                             hirale/openmage-async-index - 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. hirale/openmage-async-index

ActiveMagento-module[Queues &amp; Workers](/categories/queues)

hirale/openmage-async-index
===========================

Asynchronous Mage index event draining for OpenMage and Maho, using hirale/queue.

v1.2.1(1mo ago)1630OSL-3.0PHPPHP &gt;=8.3

Since Jun 10Pushed 1mo agoCompare

[ Source](https://github.com/hirale/openmage-async-index)[ Packagist](https://packagist.org/packages/hirale/openmage-async-index)[ RSS](/packages/hirale-openmage-async-index/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (4)Versions (3)Used By (0)

Hirale Async Index
==================

[](#hirale-async-index)

Asynchronous core index event and full reindex orchestration for OpenMage and Maho.

The module keeps `index_event` and `index_process_event` as the durable source of truth, then uses [`hirale/queue`](https://github.com/hirale/queue) to wake a background worker. Handlers are at least once, so the DB-backed pending event state is always used to decide what work remains.

Install
-------

[](#install)

Requires [`hirale/queue`](https://github.com/hirale/queue) `^3.0`(pulled in automatically).

**Maho** (26.5+):

```
composer require hirale/openmage-async-index
```

**OpenMage** (20.17+, PHP 8.3+) — one-time tweaks first; details in the [hirale/queue README](https://github.com/hirale/queue#openmage-one-time-composer-adjustments):

```
composer config platform.php 8.3
composer config allow-plugins.hirale/magento-module-installer true
composer require hirale/magento-module-installer hirale/openmage-async-index
```

For local development, add a path repository next to the application:

```
{
    "repositories": [
        {
            "name": "openmage-async-index",
            "type": "path",
            "url": "../openmage-async-index",
            "options": {
                "symlink": true
            }
        }
    ]
}
```

Runtime
-------

[](#runtime)

Enable `Hirale > Async Index` only after `Hirale > Queue` is configured and working. When async index is disabled, core indexing behaves as it did before.

When enabled, the module automatically switches manual index processes to `real_time` so Maho records index events. The original modes are stored and are restored when async index is disabled.

The queue job only wakes the runner. The runner scans pending index events and `require_reindex` processes from the database, processes them in batches, and publishes continuation jobs while work remains.

Full reindex runs are also queued. Product-backed indexers are split into product ID batches. Indexers that cannot be safely split by product still run through the same async full reindex coordinator as a global batch unit, so admin and CLI calls do not perform the heavy full reindex inside the request process while async index is enabled.

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance92

Actively maintained with recent releases

Popularity20

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Every ~5 days

Total

2

Last Release

40d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/22028058?v=4)[Hirale](/maintainers/hirale)[@hirale](https://github.com/hirale)

---

Top Contributors

[![hirale](https://avatars.githubusercontent.com/u/22028058?v=4)](https://github.com/hirale "hirale (6 commits)")

---

Tags

queueindexopenmagemagento1mahomahoecommerce

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/hirale-openmage-async-index/health.svg)

```
[![Health](https://phpackages.com/badges/hirale-openmage-async-index/health.svg)](https://phpackages.com/packages/hirale-openmage-async-index)
```

###  Alternatives

[php-amqplib/php-amqplib

Formerly videlalvaro/php-amqplib. This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.

4.6k132.3M1.0k](/packages/php-amqplib-php-amqplib)[ramsey/collection

A PHP library for representing and manipulating collections.

1.2k528.4M96](/packages/ramsey-collection)[queue-interop/queue-interop

Promoting the interoperability of MQs objects. Based on Java JMS

48131.8M98](/packages/queue-interop-queue-interop)[phootwork/collection

The phootwork library fills gaps in the php language and provides better solutions than the existing ones php offers.

3928.2M15](/packages/phootwork-collection)[apinstein/jqjobs

Async job manager for PHP.

3220.2k](/packages/apinstein-jqjobs)

PHPackages © 2026

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