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 Laravel Package

opsource/rabbitmq

A Laravel package that integrates RabbitMQ messaging into PHP applications, providing a simple, configurable API for publishing and consuming messages and connecting AMQP queues to your app's existing workflow and services.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package advertises the two primitives that matter for Laravel messaging: publish and consume. The pivotal architectural question for a TPM is whether it implements Laravel's Illuminate\Queue\Connector contract (i.e., registers as a queue driver so dispatch(), queue:work, failed_jobs, retries, and backoff behave natively) or whether it is a standalone AMQP wrapper with its own publish/consume API. The first is a drop-in replacement for the existing queue abstraction; the second is a parallel messaging stack that duplicates job serialization, failure handling, and worker supervision, and becomes a permanent second thing to operate. The README and composer.json should settle this before any code is written. Second-order question: does it sit on php-amqplib (pure PHP, no extension, easier container builds) or ext-amqp (faster, requires a compiled extension in every image and CI runner)? That choice propagates into Dockerfiles and base-image policy, so it is a platform decision, not a library preference.

Integration feasibility. Integration surface is small and conventional: Composer install, service provider auto-discovery, php artisan vendor:publish for config, and a handful of env vars for host/port/vhost/credentials. MIT license removes legal friction. There is no vendor account, no SaaS dependency, and no data-residency question — the broker is yours. Absent a driver-contract implementation, the work is a thin adapter layer (roughly a sprint of effort) around the package's publish/consume calls to satisfy the queue contract.

Technical risk. This is the dominant concern. Zero stars, zero dependents, and no release since June 2024 mean effectively zero external validation: no peer review of the AMQP edge cases, no one else hitting the reconnect and ack-semantics bugs first, and no user base to signal when a Laravel or RabbitMQ upgrade breaks it. Bus factor is one. There is no CVE-response path, no deprecation runway, and no compatibility matrix we can trust. Treat the codebase as unvetted third-party source requiring an internal audit before it touches production: read every line of the connection, reconnect, and ack/nack paths specifically. The realistic posture is "adopt with a fork-and-own contingency," not "adopt as a dependency."

Key questions for the author or code review.

  • Does it implement Illuminate\Queue\Connector, or a bespoke API?
  • Which transport: php-amqplib or ext-amqp? Version pin?
  • Are publisher confirms supported, or fire-and-forget publish?
  • Consumer semantics: manual ack/nack, basic_qos prefetch configuration, dead-letter exchange support, poison-message handling?
  • Reconnect/backoff behavior on broker restart or network partition — and does it leak connections or memory in long-running workers?
  • PHP and Laravel version constraints in composer.json; is there any CI matrix?
  • Test coverage, including integration tests against a real broker?
  • Does it handle delayed/scheduled jobs and queue declaration (idempotent declare vs. pre-provisioned topology)?

Integration Approach

Stack fit. Assumes a standard Laravel 10/11-era application on PHP 8.1+ with RabbitMQ 3.12+. The package slots in at the messaging layer beneath the job/event layer, so it should not require changes to application code that already dispatches jobs — only to the queue connection configuration. If the app currently uses database or redis queues, the abstraction boundary is already in place and the swap is configuration plus a parity check on payload format.

Migration path. Two distinct paths depending on the answer to the connector question:

  1. Driver-compatible: change QUEUE_CONNECTION, run the config publish, provision exchanges/queues, and shadow-dispatch non-critical jobs to both old and new backends for a week to compare outcomes before cutover.
  2. Bespoke API: write an internal adapter implementing the queue contract over the package's publish/consume calls, then migrate as above. Budget for this; do not assume zero glue code.

If the incumbent is vladimir-yuldashev/laravel-queue-rabbitmq — the de facto standard with meaningful adoption — do an explicit feature-parity diff before switching. Migrating from a widely-used package to a zero-adoption one requires a positive reason (licensing, specific feature, performance), not merely that it exists.

Compatibility. Establish and pin an explicit matrix: PHP minor, Laravel major, RabbitMQ server version, and transport extension. Because there is no upstream CI signal, we own that matrix and must verify each cell ourselves on our upgrade cadence. Plan for the package to pin us, rather than the reverse, on Laravel major upgrades.

Sequencing. (1) Read the source and answer the checklist above — a day of engineering. (2) Spike in a sandbox: publish, consume, kill the broker mid-flight, restart, confirm no message loss or infinite redelivery. (3) Wire one low-risk queue (notifications, analytics) in staging behind the adapter. (4) Parallel-run against the current backend. (5) Cut over one queue at a time, starting with the lowest-blast-radius workload. Never cut over a payments or auth-adjacent queue first.

Operational Impact

Maintenance. The realistic operating model is internal ownership from day one. With one maintainer, no recent release, and no dependents, upstream fixes should not be assumed. Vendor the package or maintain a private fork; MIT permits it. Budget ongoing cost as: periodic audit against Laravel/PHP upgrades (small codebase, so hours not weeks), plus owning any AMQP bug we find. The opportunity score of 10.75 is worth flagging internally — read alongside zero stars and zero dependents it reads as low ecosystem pull, so do not let a scoring artifact substitute for the code review.

Support. No community, no issue-tracker throughput, no Stack Overflow corpus. Escalation is "the engineer who read the source." That engineer must be at least two people for continuity.

Scaling. RabbitMQ scales horizontally via consumer count, so the package is not the bottleneck — but its defaults are. Prefetch (basic_qos) must be tunable; too high starves sibling consumers and inflates memory, too low caps throughput. Each queue:work process holds a connection and channel; at high worker counts, watch broker connection limits and file descriptors. Confirm the package closes channels cleanly on worker recycle, or long-running workers will accumulate channels until the broker refuses new ones.

Failure modes. Prioritize these in testing:

  • At-least-once delivery: duplicate consumption after ack loss or worker crash. Every consumer must be idempotent. This is the single most common production surprise and is a property of AMQP, not this package — but a package with weak ack handling makes it worse.
  • Broker outage / network partition: does the consumer reconnect with backoff, or exit and rely on Supervisor? Does the publisher block, throw, or silently drop?
  • Silent consumer death: worker alive but not consuming (channel closed, prefetch stuck). Needs a broker-side alarm on queue depth and consumer count, not application logs.
  • Poison messages: without dead-lettering and a max-retry ceiling, one bad payload loops forever and stalls the queue.
  • Topology drift: if the package declares exchanges/queues at runtime, mismatched arguments cause hard channel errors. Prefer pre-provisioned topology via IaC.

Ramp-up. The API surface is small, so developer ramp-up is measured in hours for publishing and a day for consuming. The real ramp-up cost is operational AMQP literacy — prefetch, ack semantics, dead-lettering, connection lifecycle — which the team needs regardless of package choice. Factor that into the plan honestly; it is larger than the library adoption itself.

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.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel