simple-bus/rabbitmq-bundle-bridge
Symfony bundle bridge that connects SimpleBus to RabbitMQ, making it easier to wire message buses to RabbitMQ queues for asynchronous command and event handling with minimal configuration.
Architecture fit
SimpleBus/AsynchronousBundle (command/event bus with async middleware) to the RabbitMQ transport so asynchronous commands and events are published to and consumed from RabbitMQ.Message objects to the AMQP producer, a consumer that pumps deliveries back into the message bus, and DI/config wiring. The durable value sits in the dependencies (php-amqplib, SimpleBus/AsynchronousBundle, the RabbitMQ bundle), not in this repo. Substitutability is high — the equivalent is a few hundred lines of application code.Bundle subclass with DependencyInjection extensions and compiler passes, there is no path to loading it in a Laravel service container. A Laravel use case would require reimplementing the bridge against Illuminate\Queue — at which point you are not using this package at all. v6.2.0 does not change this in any way.Integration feasibility
^5.2, which is where most surviving SimpleBus-era applications actually live.vladimir-yuldashev/laravel-queue-rabbitmq) or simply staying on Redis/SQS + Horizon.Technical risk
^5.2 support dropped. This is the material finding in this release. Literal reading is that the ^5.2 constraint (>=5.2 <6.0) is gone, which removes Symfony 5.2, 5.3 and 5.4 LTS from the supported set. The changelog does not say whether a 5.x floor was raised (e.g. to 5.3 or 5.4) or the whole 5.x line was cut. That ambiguity must be resolved before anyone plans an upgrade.php-amqplib was moved to v3, whether the renamed php-amqplib/rabbitmq-bundle is reconciled, or whether PHP 8.3/8.4 idioms are supported. Assume the answer is no until the composer.json matrix is read directly. If a pin back to an EOL php-amqplib is still required, the unpatched-AMQP-client liability is unchanged.Key questions
^5.2" mean 5.4 LTS is out, or that the floor moved to 5.3/5.4? Read the composer.json before anything else.php-amqplib major is now required, and does that leave an unpatched AMQP client in the graph?Stack fit
| Stack | Fit | Rationale |
|---|---|---|
| Symfony 6.x/7 + SimpleBus (existing) | Fair → Good (pending verification) | v6.2.0 may have unblocked this; confirm declared matrix first |
| Symfony 5.4 LTS + SimpleBus (existing) | Poor (downgraded from Good) | ^5.2 support dropped in v6.2.0; must stay pinned or upgrade Symfony |
| Symfony 5.2/5.3 + SimpleBus (existing) | Poor | Same, with no LTS justification to stay |
| Symfony 6/7 (greenfield or upgrade) | Poor | Use Symfony Messenger AMQP transport |
| Laravel 9–11 | None | Symfony bundle; incompatible container model |
| Laravel + RabbitMQ | None | Use laravel-queue-rabbitmq or SQS/Redis + Horizon |
| Non-Symfony PHP (Slim, Mezzio) | None | No bundle kernel; reimplement the bridge |
Migration path
CommandBus/EventBus injection with MessageBusInterface, map the SimpleBus middleware stack (async, doctrine_transaction, validation) onto Messenger middleware, and configure framework.messenger.transports with exchange, queues, retry_strategy, and failure_transport. Mechanical but non-trivial — middleware ordering is where behavior drift hides.Compatibility
OldSoundRabbitMQBundle (v1/v2) against the renamed php-amqplib/rabbitmq-bundle (v2/v3). The rename is the most common source of install failures in this space; the two provide different service IDs and config keys.php-amqplib major version the bridge expects; v3 changed several APIs and is not a drop-in for code written against v2.Sequencing
composer.json on v6.2.0 and diff it against the pinned version. Do this before any planning; it is a 15-minute task that invalidates or confirms most of the roadmap.composer.lock, add a dependency-review CI gate, and assign an owner.Maintenance
php-amqplib advisories and a standing patch obligation. The code surface is small enough to fork, which is what makes this tractable.composer.json diffs. That is slower and error-prone than a maintained project's upgrade guides.Support
Scaling
prefetch_count tuned to handler latency, and broker-side queue balancing.php-amqplib plus RabbitMQ. Publisher confirms and persistent messages need explicit configuration — defaults may be fire-and-forget.--max-messages-style supervision.Failure modes
x-death-based retry policy yourself. Still the most likely production incident.php-amqplib majors. Message compatibility is not guaranteed across that boundary and must be tested, not assumed.composer update on a transitive advisory can force the issue on a release day, blocking unrelated work until someone pins the tree by hand.Ramp-up
composer.json rather than a changelog, add "can read and reason about a Composer constraint graph" to the required skills for whoever owns this.Net recommendation: unchanged in direction, sharper in rationale. Do not adopt this package for new work, and do not introduce it into a Laravel codebase under any circumstances. v6.2.0 is a marginal positive — the project is not dead — but it is a subtractive breaking change with no upgrade guidance, and it removes support for Symfony 5.4 LTS, where most surviving SimpleBus applications live. For Symfony 6.x/7, the package is now plausibly installable again, but still only as a pinned, explicitly owned component with a funded exit to Symfony Messenger. For Symfony 5.4, the fork is now mandatory, not optional. Resolve the declared version matrix before committing to any path.
How can I help you explore Laravel packages today?