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

Laravel Queue Rabbitmq Laravel Package

vladimir-yuldashev/laravel-queue-rabbitmq

RabbitMQ queue driver for Laravel. Adds a full-featured RabbitMQ backend to Laravel's queue system, supporting delayed and priority queues, exchange routing, and reliable message publishing and consumption.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. laravel-queue-rabbitmq (vyuldashev) is a third-party queue driver that plugs into Laravel's QueueManager via a service provider and Queue::extend. It is architecturally a substitution, not an addition — your application code keeps using dispatch(), Bus, job middleware, and failed_jobs semantics; only the transport changes from Redis/database/SQS to AMQP. That makes it a low-friction fit for teams already standardized on RabbitMQ for inter-service messaging, and a poor fit for teams that want a managed queue with zero broker operations. The most important architectural caveat: Laravel Horizon is Redis-only and does not work with this driver. Any team currently relying on Horizon for throughput metrics, retry inspection, and job tagging loses that surface and must replace it (RabbitMQ management UI, Prometheus/Grafana rabbitmq_exporter, or a custom dashboarding effort).

Integration feasibility. High. Standard install path: composer require vyuldashev/laravel-queue-rabbitmq, publish config/rabbitmq.php, define hosts/queues/options, set QUEUE_CONNECTION=rabbitmq. Delayed jobs depend on either the rabbitmq_delayed_message_exchange plugin or the driver's per-delay queue strategy — this is a deployment prerequisite that must be confirmed against the managed broker offering (it is unavailable on some managed services). Quorum queues, priorities, and dead-lettering are configurable but require deliberate choice, not defaults.

Technical risk. Moderate, concentrated in three areas:

  1. Coupling to Laravel internals. The v14.4.0 note "Fix compatibility with Laravel 12.34" is the signal here — a Laravel patch-level release broke the driver. This means the package must be treated as a pin-and-test dependency, not a floating one, and any Laravel upgrade (including patch releases) needs a queue integration test in CI.
  2. Maintainer concentration. Community-maintained with a small contributor pool; v14.4.0's only new contributor is the person who shipped the Laravel 12.34 fix. No commercial SLA, GitHub issues only. This release is good evidence of responsiveness (two fixes, forward-compat work) but not evidence of bench depth.
  3. Delivery semantics. AMQP consumption is at-least-once; redelivery on connection loss or nack means jobs must be idempotent. Teams migrating from database/Redis drivers where this was implicitly tolerated will discover duplicate-execution bugs in production.

Key questions for the adopting team.

  • Who owns RabbitMQ operations (upgrades, quorum queues, memory/disk alarms, flow control)? Is that a platform team or the application team?
  • Is rabbitmq_delayed_message_exchange available on our broker? If not, are we accepting the per-delay-queue fan-out?
  • What replaces Horizon for operational visibility, and what is the build cost?
  • Are all jobs on the queues we intend to migrate idempotent? What is the dedup strategy?
  • What is our pinning policy for this package versus Laravel minor/patch releases, and what is the test that catches a break?
  • Do we have a fork-and-patch capability (internal fork, patch release process) if upstream stalls?

Integration Approach

Stack fit. Laravel 11/12 on PHP 8.2–8.4, php-amqplib/php-amqplib as the transport, RabbitMQ 3.12+/4.x as the broker. v14.4.0 adds PHP 8.4 to the CI matrix — this is a test-coverage signal, i.e. the suite passes on 8.4, which is a reasonable proxy for runtime support but should still be validated in staging on your actual extension set (ext-bcmath, ext-json, sockets). PHP 8.4 support matters if your platform roadmap includes an 8.4 upgrade within the next two quarters; if not, it is a low-urgency item.

Migration path. Do not cut over in place. Recommended shape:

  1. Add the rabbitmq connection alongside the existing driver in config/queue.php.
  2. Migrate one non-critical queue (notifications, indexing, webhooks) end-to-end, including failure and retry behavior.
  3. Dual-dispatch or shadow-consume for the highest-volume queue for one to two weeks to compare throughput and failure rates.
  4. Cut over remaining queues by criticality, last.
  5. Keep the old connection configured for one release cycle as a rollback path.

Watch specifically for: failed_jobs behavior (the driver still records failures to the database table via Laravel's failed-job provider — confirm this is what you want rather than relying on RabbitMQ dead-letter queues), job payload size limits (AMQP frame/message size), and any use of Queue::later() in code paths that assume a specific delay implementation.

Compatibility. Treat Laravel version compatibility as an explicit matrix entry, not an assumption. The 12.34 fix implies the package tracks Laravel internals release-by-release; pin the package to 14.4.0 and pin Laravel to a tested minor, with a deliberate bump cadence. PHP 8.4 is CI-verified as of this release; PHP 8.2/8.3 remain the conservative production choices.

Sequencing. v14.4.0 contains no breaking changes, no deprecations, and no new features — it is a maintenance and compatibility release. There is therefore no upgrade risk in moving from 14.3.0 to 14.4.0, and 14.4.0 is the correct baseline for any new adoption. Sequence adoption as: (a) pin 14.4.0 + Laravel version, (b) broker readiness (plugins, quorum queues, DLX topology), (c) observability replacement for Horizon, (d) pilot queue, (e) incremental cutover. Do not start at (d).

Operational Impact

Maintenance. Ongoing cost is real but bounded: roughly one to three engineer-days per quarter tracking package releases against Laravel releases, plus the cost of the fork-and-patch fallback if needed. The dominant maintenance driver is not the package — it is the Laravel patch-release coupling demonstrated in this release. Budget for a CI job that runs the full queue integration suite on every Laravel bump.

Support. GitHub issues and community PRs only; no vendor, no SLA, no security advisory process beyond GitHub's. Mitigations: internal fork with a documented patch process, named internal owner for the dependency, and a standing rule that a stalled upstream is a fork-and-ship decision rather than a blocker. Two- to four-week responsiveness on issues is the realistic expectation; this release (two PRs, one from a first-time contributor) is consistent with that.

Scaling. Consumer-side scaling is straightforward — add workers, tune prefetch_count and connection/channel reuse; the driver is a thin wrapper over php-amqplib's blocking I/O, so worker count and prefetch matter more than driver config. Broker-side scaling is where teams get surprised: memory and disk alarms trigger publisher flow control that manifests as slow or blocked dispatch in the application, and connection churn from short-lived workers can exhaust broker resources. Set expectations that this package makes RabbitMQ a tier-0 dependency — if the broker is down, dispatch fails at the request path.

Failure modes to design for explicitly.

  • Broker unavailable at dispatch time. Jobs are lost unless a fallback connection, outbox, or Queue::fake-style degradation exists. This is the most common production incident with any non-managed queue driver.
  • At-least-once redelivery. Duplicate job execution on connection drop or ack loss; requires idempotent jobs or an idempotency key per job.
  • Delayed-message plugin absence silently changes delay semantics or fails job publication — validate at deploy time, not at runtime.
  • Poison messages / retry storms. Without Horizon there is no built-in view; a job that fails repeatedly can churn without anyone seeing it. Configure DLX + a reviewed policy.
  • Lost observability. Teams lose Horizon's dashboards and job tags; this must be replaced before cutover, not after.
  • Silent version skew. A Laravel patch upgrade breaking the driver manifests as failed dispatch or silently dropped jobs, not a loud error — hence the mandatory integration test.

Ramp-up. A mid-size team should plan one to two sprints: half a sprint for RabbitMQ fundamentals (topology, exchanges, quorum queues, DLX, flow control) and half to one sprint for the pilot queue plus observability tooling. Teams without prior AMQP experience should weight this higher, and should not adopt this driver for critical queues until at least one engineer can debug a stuck consumer without vendor help.

Verdict on v14.4.0. Maintenance release; no breaking changes, no deprecations, no new capabilities. It is a low-risk upgrade from 14.3.0 and the recommended baseline for new adoption. The meaningful signal is not the PHP 8.4 CI addition — it is the Laravel 12.34 compatibility fix, which confirms the package's tight coupling to Laravel internals and should directly inform pinning policy and CI coverage.

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.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log