- Can I use this package with Laravel’s built-in queue system (Queue::*) instead of Symfony Messenger?
- No, this package requires Symfony Messenger. If you're using Laravel’s legacy queue system, you’ll need to migrate to Messenger first (e.g., `composer require symfony/messenger` and configure transports). The bundle hooks directly into Messenger’s events, so it won’t work with the older Queue facade.
- Does this bundle work with Laravel 8 or older versions?
- This bundle is designed for Laravel 9+ (Symfony 6+). Older Laravel versions may require additional setup or a Symfony Messenger bridge, but compatibility isn’t guaranteed. Check the [Symfony Messenger documentation](https://symfony.com/doc/current/messenger.html) for Laravel 8 support first.
- How do I set up authentication for the dashboard in a Laravel app?
- The dashboard uses Symfony’s security layer, so you’ll need to integrate Laravel’s auth system. Options include using Symfony’s `UserProvider` or configuring middleware to redirect unauthenticated users. The bundle doesn’t enforce auth by default, so you’ll need to handle this manually in your Laravel routes or middleware.
- What database drivers does this bundle support for storing message history?
- Only Doctrine ORM is supported for storing message history. If you’re already using Eloquent, you’ll need to create a custom `ProcessedMessage` entity extending the bundle’s base class and configure it in `config/packages/zenstruck_messenger_monitor.yaml`. No other database drivers (e.g., MySQL, PostgreSQL) are directly supported.
- Will this bundle slow down my queue workers or add significant overhead?
- The bundle is optimized for read-heavy operations and shouldn’t significantly impact worker performance. However, storing message history in the database may add minor latency. Monitor query performance if you’re processing high volumes of messages, especially in production.
- Can I customize the dashboard UI or build my own monitoring interface?
- Yes! The bundle provides tools to build your own UI. You can access raw data via the `messenger:monitor` command or Symfony Messenger events. The README includes an [Advanced Usage](#advanced-usage) section with details on extending or replacing the default UI.
- Does this bundle support monitoring for Amazon SQS, Redis, or other transports?
- Yes, the bundle works with all Symfony Messenger transports, including Amazon SQS, Redis, and database queues. It tracks messages across transports and provides visibility into retries, failures, and schedules. However, legacy Laravel queue drivers (e.g., `sync`, `database`) may require explicit configuration.
- How do I handle message history retention or cleanup for production?
- The bundle doesn’t include built-in cleanup, but you can configure Doctrine’s lifecycle callbacks or use Laravel’s scheduled tasks (e.g., `Artisan::schedule`) to purge old records. Alternatively, add a `TTL` column to the `processed_messages` table and use database-level cleanup.
- Is there a way to monitor scheduled messages or delayed dispatches?
- Yes, the bundle tracks scheduled and delayed messages out of the box. The dashboard shows dispatch times, delays, and whether messages were processed successfully. You can also filter by time periods using the `--period` option in the `messenger:monitor` command.
- What alternatives exist if I don’t want to use this bundle for monitoring?
- If you’re using Laravel Horizon, it provides built-in monitoring for queues but lacks per-message granularity. For Symfony Messenger, alternatives include custom logging (e.g., Monolog) or third-party tools like Datadog or Sentry. However, this bundle offers a dedicated UI with historical tracking, which those alternatives may not provide natively.