- Does mmucklo/queue-bundle work with Laravel?
- No. It is a Symfony bundle that ships a Bundle class, a DI extension, YAML configuration, compiler passes, and Symfony Console worker commands such as dtc:queue:run. It implements none of Laravel's service-provider, facade, or Illuminate\Queue\Queue contracts, so it cannot act as a Laravel queue driver. For a Laravel application, use the native queue system with queue:work, the failed_jobs table, and Horizon instead.
- How do I install mmucklo/queue-bundle?
- Install it with Composer using the package name mmucklo/queue-bundle, then register the bundle in your Symfony kernel or bundles.php. Configure your chosen backend and job storage in the bundle's YAML configuration tree, and create the required job tables or collections if you use Doctrine ORM or ODM persistence. Finish by running the bundle's console commands to confirm the worker connects to the store correctly.
- Which queue backends does mmucklo/queue-bundle support?
- The bundle is transport-agnostic and ships adapters for Doctrine ORM (MySQL), Doctrine ODM (MongoDB), RabbitMQ, Beanstalkd, and Redis, with support for custom backends and pluggable serializers. Jobs share a common interface regardless of transport, so you can swap stores without rewriting job classes. That abstraction is the bundle's main technical value, but it duplicates a capability Laravel already owns natively.
- What PHP and Symfony versions does mmucklo/queue-bundle support?
- The codebase targets Symfony 2, 3, 4, and 5 with a PHP 7.x through 8.0-era floor, and there is no published compatibility matrix. There is no assurance of Symfony 6 or 7 support or PHP 8.2+ compatibility, which is a hard blocker for modern Laravel 10 and 11 stacks running PHP 8.1+. Pin exact PHP, Doctrine ORM/ODM, Redis client, and RabbitMQ or Beanstalkd library versions and validate them with a spike before committing.
- How do I run a queue worker with this bundle?
- Workers are Symfony console commands, principally dtc:queue:run, which you run as a long-lived process under Supervisor or systemd. The bundle also provides commands for stalled-job recovery and queue statistics. In a Laravel migration you would replace these with queue:work under Supervisor, using --max-time and the failed_jobs table for equivalent control.
- How does mmucklo/queue-bundle handle failed and stalled jobs?
- Jobs carry a persisted status lifecycle of pending, running, success, or failure, and the bundle includes a stalled-job recovery command plus basic failure handling. However, the documented behavior for in-flight jobs when a worker is terminated is not clearly guaranteed, so treat it as best-effort until proven. If you need bounded retries and a stalled-job guarantee, verify it in a spike or port the pattern onto Laravel's native retry and failed-job machinery.
- Is mmucklo/queue-bundle a good alternative to Laravel Horizon or the native queue?
- No. Its feature set overlaps Laravel's built-in queue rather than differentiating from it, and its only unique pieces are Doctrine ODM/Mongo persistence and a bundled dashboard, neither of which justifies the coupling. Adopting it would also mean running a second runtime alongside Laravel. Equivalent behavior is achievable in Laravel in days using queue connections, ShouldQueue jobs, and Horizon.
- How do I migrate from mmucklo/queue-bundle to Laravel's queue?
- Map each bundle transport onto the matching Laravel queue connection: database, redis, beanstalkd, or sqs. Convert job classes into ShouldQueue jobs, replace dtc:queue:run with queue:work under Supervisor, and replace the bundle dashboard with Horizon for Redis or a small failed-jobs view. Parity is typically reachable in days, with no lock-in and no extra dependency.
- Is mmucklo/queue-bundle actively maintained and safe for production?
- The signals are weak: roughly 120 stars, zero dependents, a single maintainer, no evident security policy, and no disclosed CI or release cadence. Zero dependent packages means no downstream production evidence and no community-driven compatibility patches. The MIT license keeps legal risk low, but lifecycle and engineering risk are high, so fork-and-own would be the only realistic long-term option.
- Does the bundle's dashboard expose unauthenticated routes by default?
- That is unresolved and must be checked before exposing anything. The evaluation flags the dashboard's default route protection and authorization story as an open question rather than a documented guarantee. If you use the bundle, review the routes and firewall configuration in your Symfony app, or replace the dashboard entirely with Horizon or a small internal failed-jobs screen.