wapplersystems/messenger-monitor

TYPO3 backend module to monitor Symfony Messenger queues (queued/failed; running optional).

Maintainers

Package info

github.com/WapplerSystems/t3-messenger-monitor

Type:typo3-cms-extension

pkg:composer/wapplersystems/messenger-monitor

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

14.0.0 2026-05-15 14:57 UTC

This package is auto-updated.

Last update: 2026-05-15 14:58:41 UTC


README

TYPO3 v14 backend module that gives you a live look into your Symfony Messenger queues when they are persisted in the TYPO3 database via the Doctrine transport.

It surfaces pending and in-flight envelopes from the sys_messenger_messages table so you can quickly answer "is my worker processing things, is anything stuck, what message classes are flowing through?" — without dropping into the database.

Status

  • TYPO3 compatibility: 14.x
  • Extension state: beta (read-only inspection; no retry / requeue / delete actions yet)
  • License: GPL-2.0-or-later

Features

  • Queue overview — every distinct queue_name in sys_messenger_messages with totals for pending (not yet delivered to a worker) and processing (delivered to a worker, not yet acknowledged).
  • Message inspection — recent envelopes per queue with the actual message class (extracted from the serialized envelope body, so App\Message\FooBar shows up instead of Symfony\Component\Messenger\Envelope).
  • Filtering — filter by queue and by status (pending / processing). Limit is capped (1–200, default 50).
  • AJAX refresh endpoint at /typo3/messenger-monitor/ajax for live polling without reloading the whole module.
  • Admin-only access; module lives under System → Messenger Monitor.
  • Custom v14-style icon in the module menu.

Requirements

Component Version
TYPO3 ^14.3
PHP ^8.2
symfony/messenger ^7.4

Installation

composer require wapplersystems/messenger-monitor

Then activate the extension in Admin Tools → Extensions (or run vendor/bin/typo3 extension:setup).

Configuration prerequisite

This extension does not configure Symfony Messenger for you — it only reads. Make sure your Messenger transport persists to the TYPO3 database, e.g.:

// config/system/additional.php (or wherever you bootstrap Symfony Messenger)
$transports = [
    'async' => [
        'dsn' => 'doctrine://default?queue_name=async&table_name=sys_messenger_messages',
    ],
];

The module assumes the sys_messenger_messages table exists. If it does not yet exist, run a Messenger consumer once or let Doctrine create it via the standard Messenger messenger:setup-transports console command.

Using the module

  1. Log in to the TYPO3 backend as an admin.
  2. Open System → Messenger Monitor.
  3. The left panel lists every queue that currently has rows in the table, with badge counters for pending and processing envelopes.
  4. Pick a queue to see its most recent envelopes — message class, created timestamp, available-at, delivered-at, and status.
  5. Use the status filter (pending / processing) and the limit input to narrow the list.

The module polls the same data via the AJAX endpoint, so the counters and the table stay current while the page is open.

What it does not do (yet)

  • No retry / requeue of failed envelopes — pair this with messenger:failed:retry on the CLI.
  • No delete / cancel actions on individual envelopes.
  • No support for non-Doctrine transports (Redis, AMQP, …); only the Doctrine transport writes to sys_messenger_messages.

These are deliberate omissions for the beta — the module focuses on observability first. Patches welcome.

Links

License

GPL-2.0-or-later. See the LICENSE file or composer.json.