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

lettermint/laravel-rabbitmq

Laravel RabbitMQ provides a Laravel-friendly integration for RabbitMQ, helping you configure connections, publish messages, and consume queues with familiar conventions. It simplifies adding reliable background messaging and event-driven workflows to PHP applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

This establishes the baseline assessment; no prior evaluation existed. Findings below are derived from the v1.4.0 release notes plus standard expectations for a Laravel queue driver package — items flagged as open questions should be confirmed against the repo before commitment.

Architecture fit lettermint/laravel-rabbitmq plugs RabbitMQ into Laravel's native queue abstraction, so application code continues to use dispatch(), job classes, and queue:work unchanged. The value proposition is broker-level routing, dead-letter exchanges (DLX), and per-message acknowledgement that Redis/SQS/database drivers approximate but don't fully match. The optional Filament integration adds an operator-facing UI over queue and dead-letter state, which is a meaningful operational differentiator — most Laravel queue drivers leave dead-letter triage to ad-hoc scripts or broker CLIs. Fit is strongest for teams already running RabbitMQ or with a hard requirement for DLX/routing; it is a poor fit for teams standardized on Horizon, since Horizon is Redis-only and none of its metrics/dashboards carry over.

Integration feasibility Low-friction for application developers: a composer install, a new entry in config/queue.php, and an env var. The real work is infrastructure and topology — broker provisioning, exchange/queue/binding definitions, DLX policy, and worker supervision. Both v1.4.0 features are additive and appear opt-in ("optional batch consumption"), so adoption can be staged rather than forced. The Filament feature carries a conditional dependency: it delivers zero value unless the organization runs a Filament admin panel, and it may impose a Filament version constraint on the host app.

Technical risk

  • Bus factor / maturity: Single named contributor (@bjarn) on a vendor-scoped package. Treat as moderate supply-chain risk; mitigate with version pinning and a willingness to fork.
  • Batch consumption semantics: Batching changes ack/nack and prefetch behavior. The critical unknown is partial-batch failure — whether a single poison message forces redelivery of the whole batch (amplifying duplicates) and whether the batch is acked on timeout. This directly affects idempotency requirements.
  • Retry-all action: A bulk requeue is a high-blast-radius control. Risk depends on whether it re-drives messages to the origin queue or a holding queue, whether it honors per-message retry counts, and whether it is authorization-gated within Filament.
  • Semver signal: A minor bump with no deprecations or breaking changes noted is a positive signal, but absence of a changelog entry for a behavior change is not proof of none.

Key questions

  1. Does batch consumption alter delivery guarantees on partial failure, and is batch size bounded/ configurable?
  2. Does "retry all" respect existing retry counts and backoff, or can it resurrect exhausted messages indefinitely?
  3. Is the Filament action gated by a policy/permission, and is it audit-logged?
  4. Supported matrix: Laravel 10/11/12, PHP 8.1+, Filament v3 only?
  5. Are job batching, chains, delays, and priority queues supported, or only plain dispatch?
  6. Is there an integration test suite against a real broker, and what is CI coverage?
  7. Is there any commercial support relationship with Lettermint, or is this pure community OSS?

Integration Approach

Stack fit Target profile: Laravel application, RabbitMQ broker (managed or self-hosted), supervisor-managed workers, optional Filament v3 admin panel. Explicitly out of profile: Horizon-dependent shops, teams without RabbitMQ operational experience, or workloads that only need simple FIFO queueing where the database or SQS driver is cheaper to run.

Migration path Adopt RabbitMQ as an additional connection rather than replacing the default. Pin QUEUE_CONNECTION per-environment only after a per-queue cutover, and drain in-flight jobs on the old driver before switching. Because both v1.4.0 features are opt-in, the upgrade from v1.3.4 is a low-risk dependency bump that can ship independently of any architecture change — do not couple the two.

Compatibility Minor version bump implies backward compatibility with v1.3.4; no migration guide is referenced, consistent with that. The Filament feature may tighten the package's composer.json Filament constraint — verify this does not conflict with the host application's pinned Filament version before upgrading, as that is the most plausible way this "additive" release breaks an install.

Sequencing

  1. Broker provisioning and IaC (exchanges, queues, bindings, DLX policy).
  2. Worker topology: supervisor units, prefetch tuning, memory limits, restart policy.
  3. Retry/backoff policy defined and documented before any dead-letter traffic exists.
  4. Staging connection with shadow/duplicate traffic; validate throughput and failure behavior.
  5. Enable batch consumption only after load testing and confirming idempotency of affected jobs.
  6. Register the Filament queue panel; wire authorization policy and audit logging on the retry action.
  7. Per-queue production cutover, oldest-riskiest-queue last.

Operational Impact

Maintenance Small dependency surface, so upgrade cost is low; the ongoing cost is RabbitMQ itself — broker version upgrades, plugin management, and definition drift. Pin the package version and review release notes on each bump; a single-maintainer project warrants watching the issue tracker and being prepared to carry a patch.

Support Community GitHub issues only, absent a stated Lettermint support agreement. Escalation for broker-level incidents lands on the internal platform team regardless of package behavior — plan for that in on-call rotation. Internal runbooks for "queue backed up," "DLQ growing," and "broker unreachable" are prerequisites, not follow-ups.

Scaling RabbitMQ scales horizontally via clustering and quorum queues, with worker fleet scaled independently via replica count. Batch consumption is the throughput lever in this release: fewer round-trips and higher effective prefetch per worker, at the cost of higher per-worker memory and coarser failure granularity. Confirm batch size interacts sanely with --timeout and --memory on workers before scaling out, since those two limits are the usual cause of silent worker restarts.

Failure modes

  • DLQ accumulation without triage. The retry-all action improves recoverability but does not fix root cause; a bulk requeue against an unaddressed poison message re-floods the queue. Require a confirmation step, rate limiting, and operator judgment.
  • Thundering herd on bulk retry. Thousands of messages re-driven simultaneously can saturate downstream dependencies.
  • Batch-induced duplicates. At-least-once delivery plus whole-batch nack means handlers must be idempotent; non-idempotent jobs are the primary correctness hazard introduced by adopting batching.
  • Broker outage. Publish failures surface as synchronous exceptions at dispatch time; queues fill and producers block if publisher confirms and memory alarms trip.
  • Privilege escalation via admin UI. Queue retry/purge actions exposed in Filament must be permission-gated, or any panel user can re-drive or destroy production messages.

Ramp-up Application developers: hours — the Laravel queue API is unchanged. Platform/ops: days to weeks for RabbitMQ fluency (exchanges, bindings, DLX, prefetch, quorum queues) and for building dashboards and runbooks. Budget explicit time for the dead-letter triage workflow, since that is where this package concentrates risk and where on-call will actually spend its time.

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.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package