Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Rabbitmq Bundle Laravel Package

nti/rabbitmq-bundle

nti/rabbitmq-bundle integrates RabbitMQ messaging into Symfony applications, providing services and configuration for publishing and consuming AMQP messages. It simplifies connection setup, queue and exchange declarations, and producer/consumer wiring so PHP apps can add reliable asynchronous messag...

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged in substance: this is a Symfony bundle, not a Laravel package. nti/rabbitmq-bundle ships a Bundle class, a Symfony DI extension, and config-tree-driven consumer/producer definitions — the standard Symfony bundle contract. Laravel's service container, package discovery (extra.laravel), and console kernel have no equivalent lifecycle hook, so the bundle's autoconfiguration is inert in a Laravel app. Adopting it in Laravel still means forking or re-wiring: manually instantiating the bundle's connection factory, consumer, and producer services through Laravel's container and re-implementing the config tree as config/*.php. The value it delivers remains php-amqplib wiring plus a CLI consumer loop — infrastructure available from a maintained first-party integration (e.g., vladimir-yuldashev/laravel-queue-rabbitmq for Laravel, php-amqplib/rabbitmq-bundle for Symfony) without the bundle's baggage. The v1.15.1 release changes none of this.

Integration feasibility. Straightforward for a Symfony 4.4/5.x monolith already using oldsound/rabbitmq-bundle or its successor — namespace swap, essentially unchanged API surface. Feasibility remains low for Laravel: still no Laravel service provider, no documented Laravel usage, and effectively no dependents to copy from. Effort in Laravel is adaptation, not integration (est. 2–5 engineer-days for a minimal proof, plus ongoing ownership of the adapter).

Technical risk. Still high, but the risk profile has shifted on one axis and the release introduces two new, smaller signals.

  1. Provenance/abandonment — materially revised. The prior assessment cited a last release of 2021-06-08; v1.15.1 demonstrates the fork is not dormant. That downgrades total-abandonment risk but does not create a support guarantee: no stars/dependents, no visible maintainer bench, no security-advisory channel, and no evidence of a CI matrix against modern PHP/Symfony. Treat this as "sporadically maintained by a single party," not "maintained."
  2. Feature velocity is real but unversioned. "Add possibility to use multiple hosts" is a feature shipped in a patch release (1.15.1). That is a semver-hygiene signal: consumers cannot assume minors are additive-safe, and any automated dependency update policy needs pinning rather than caret ranges.
  3. The services/rabbitmq.xml classname fix is a yellow flag, not a green one. Correcting a stale class name in the DI service definitions implies the service wiring was drifted or untested in the prior tag for at least some configuration paths. It also means upgrading from an earlier 1.15.x could change which classes are instantiated — verify the container compiles cleanly and that no service alias silently pointed at the old class.
  4. Runtime currency. Unresolved. The release notes say nothing about PHP 8.2/8.3 or Symfony 6/7 support. The prior constraint assumption (PHP ≤8.0, Symfony ≤5.4) must still be verified empirically via a CI matrix before adoption.
  5. PHP process model. Unchanged: php-amqplib is synchronous and blocking, consumers are long-lived forked CLI processes, and this remains a poor fit for serverless/scale-to-zero deployments that demand their own supervision story.
  6. Supply chain. Unchanged: a single-maintainer fork with negligible downstream signal means you still inherit the obligation to patch it and its transitive php-amqplib dependency yourself.

Key questions.

  • Is the target stack actually Symfony, or Laravel? If Laravel, the answer is still a maintained Laravel queue driver, not this package.
  • New: what is the actual support matrix for v1.15.1 — PHP and Symfony versions, and is there CI proving it? The release notes are silent.
  • New: does multi-host support mean true failover (reconnect to the next host on failure) or simply first-available-at-boot selection? The operational value differs enormously; confirm against the connection factory code, not the changelog.
  • New: what changed in the rabbitmq.xml classname fix, and did earlier 1.15.x tags ship broken service definitions for our configuration shape?
  • Do we need the bundle's abstractions (config-defined consumers, producers, RPC) or only a connection to RabbitMQ for a queue worker?
  • Who owns patching php-amqplib and this bundle when a CVE lands in the dependency tree?

Integration Approach

Stack fit. Green for Symfony 4.4/5.x applications already on php-amqplib; red for Laravel. For Laravel, treat php-amqplib as the real dependency and use a Laravel-native queue driver, keeping this bundle out of the dependency tree entirely. If the organization is Symfony-centric and standardized on the RabbitMQBundle family, this fork is a drop-in — but the maintained upstream (php-amqplib/rabbitmq-bundle) is still the better default unless a specific reason to prefer nti exists. Multi-host support is the first concrete reason that has appeared; weigh it against the upstream's maintenance posture.

Migration path. Off oldsound/rabbitmq-bundle in Symfony: swap the Composer requirement, update bundle registration in config/bundles.php, rename the config root key if changed, diff the consumer base class. Off nti/rabbitmq-bundle toward the maintained upstream: same exercise, plus reconciling fork-specific patches. In Laravel: do not migrate to this; if already on it, extract connection settings to config/queue.php, replace the bundle's consumer CLI with queue:work/Horizon, delete the bundle.

Compatibility. Still pin explicit versions rather than caret ranges — the feature-in-a-patch-release pattern above makes floating constraints unsafe. Verify PHP/Symfony support with a CI matrix before committing; the changelog offers no guidance. Confirm php-amqplib constraint resolution (2.x vs 3.x) and that the AMQP extension is not required (pure-PHP lib — still a portability plus). New: if adopting multi-host, validate the config schema for the hosts array and confirm behavior when the first host is unreachable at boot versus lost mid-consumption.

Sequencing. (1) Spike: install in a throwaway Symfony 5.4 app, publish and consume one message end-to-end. (2) New: within the spike, explicitly test multi-host failover — kill the primary broker and confirm the consumer recovers; if it does not, the headline feature is configuration-only and the value case weakens. (3) Decide build-vs-adopt against the maintained upstream. (4) If adopted, fork internally, add PHP/Symfony compatibility CI, publish to a private registry. (5) Land in a single non-critical queue first (notifications/logging), measure, then expand. (6) Only after stabilization consider transactional or RPC workloads.

Operational Impact

Maintenance. Still the dominant cost, marginally reduced. A 2021-era fork that now ships releases means dependency bumps and PHP 8.x fixes may arrive from upstream rather than being wholly yours — but with no published support policy you cannot plan against that. Budget recurring internal ownership (roughly 0.1–0.2 FTE) plus a private fork and CI. Upgrade review is now mandatory per release rather than optional, given the semver pattern.

Support. Still no vendor, no escalation path, negligible community. Support is internal: on-call debugs broker and client library together. Documentation must be written in-house.

Scaling. Horizontal scaling still follows supervised consumer count, not bundle features. Constraints persist: blocking single-message-per-worker consumption, manual prefetch tuning, memory growth in long-lived forked processes requiring recycling (--max-messages-style restarts), and no built-in autoscaling, metrics, or retry/backoff policy — you build DLQs, retry exchanges, and monitoring. New: multi-host support improves availability (broker-level redundancy) but does nothing for throughput or observability. Do not let the feature be read as a scaling story.

Failure modes. (1) Blocking consumer deadlock/hang on connection loss — heartbeat config plus supervisor restart policy required. (2) Unacked message pile-up if workers crash after prefetch. (3) Silent message loss with autogenerated queues and missing durable/persistent flags. (4) Version drift breakage on PHP/Symfony upgrades — still likely to surface at deploy, not in tests; the rabbitmq.xml classname fix is direct evidence that wiring drift reaches tagged releases. (5) Dependency CVE exposure with no advisory feed. New (6): Partial failover — a multi-host configuration that reconnects only at process start leaves existing workers pinned to a dead host; ensure supervision restarts workers on broker loss rather than relying on the bundle to re-resolve hosts. Each needs a runbook, queue-depth and consumer-liveness alerting, and a restart-tested recovery path.

Ramp-up. For a Symfony engineer familiar with the bundle family: under a day. For a Laravel engineer: 3–5 days to understand the Symfony bundle machinery enough to adapter it, materially longer to own it. Organizational cost remains the steeper one: private fork, CI matrix, and patch cadence established before the first production message flows. The release improves the case modestly but does not clear the bar — hold the go/no-go gate after the spike, with the default still "maintained upstream or a Laravel-native driver" unless a concrete blocking reason emerges. Multi-host support is now the most plausible such reason; make it earn that role with an actual failover test.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console