wapplersystems / messenger-monitor
TYPO3 backend module to monitor Symfony Messenger queues (queued/failed; running optional).
Package info
github.com/WapplerSystems/t3-messenger-monitor
Type:typo3-cms-extension
pkg:composer/wapplersystems/messenger-monitor
Requires
- php: ^8.2
- symfony/messenger: ^7.4
- typo3/cms-core: ^14.3
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_nameinsys_messenger_messageswith 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\FooBarshows up instead ofSymfony\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/ajaxfor 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
- Log in to the TYPO3 backend as an admin.
- Open System → Messenger Monitor.
- The left panel lists every queue that currently has rows in the table, with badge counters for pending and processing envelopes.
- Pick a queue to see its most recent envelopes — message class, created timestamp, available-at, delivered-at, and status.
- 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:retryon 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
- Repository: https://github.com/WapplerSystems/t3-messenger-monitor
- Issues: https://github.com/WapplerSystems/t3-messenger-monitor/issues
- TER (after first tagged release): https://extensions.typo3.org/extension/messenger_monitor
License
GPL-2.0-or-later. See the LICENSE file or composer.json.