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

Amqp Tools Laravel Package

enqueue/amqp-tools

Extends AMQP transports with features beyond the spec, compatible with any amqp interop transport. Part of the Enqueue PHP messaging ecosystem for building reliable, interoperable message queues.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on async infrastructure: enqueue/amqp-tools is a thin utility layer that adds AMQP behaviors the spec itself doesn't define (e.g., delayed/re-delivered message handling, message TTL helpers, exchange/queue setup conveniences) on top of any amqp interop-compatible transport. For a PM, this is the difference between "we build our own retry/delay/DLQ plumbing" and "we configure it" — a multi-sprint decision, not a library preference.
  • Roadmap sequencing for event-driven features: It unblocks a class of roadmap items that share one dependency: notifications/email fan-out, order and payment decoupling, webhook retries with backoff, delayed jobs (reminders, trial expiry, cart abandonment), and cross-service event publishing to Python/Node consumers via plain AMQP. If two or more of these sit in the next two quarters, the adoption case is stronger than for any single feature.
  • Feature scope decisions: Because it is deliberately low-level, it supports an explicit choice about where queue complexity lives — in our application code (full control, more ownership) versus a higher-level abstraction (Laravel Queues/Symfony Messenger, less code, less AMQP-specific control). This is a resourcing decision as much as a technical one.
  • Platform/portfolio bet: Part of the php-enqueue ecosystem (2.2k stars on the umbrella repo, MIT, Forma-Pro backed). Adopting it means buying into that ecosystem's abstractions on a semi-permanent basis; worth treating as a platform decision with a documented exit path rather than a per-ticket choice.
  • Honest counter-signal for prioritization: 0 dependents, "readme"-level maturity, and a development-repository home mean the PM should budget for the integration work as our cost, not the package's. It supports a decision to adopt only where we already run RabbitMQ/AMQP and have (or will hire) someone who understands prefetch, ack/nack, DLX, and connection lifecycle.

When to Consider This Package

Adopt when:

  • RabbitMQ (or another AMQP 0-9-1 broker) is already in the stack or committed on the roadmap. This package is AMQP-specific and adds nothing outside that protocol.
  • You need AMQP behaviors that are not in the spec — delayed delivery, retry/backoff patterns, dead-letter routing, TTL — and want them as reusable tools rather than one-off code per feature.
  • You need low-level control: custom exchanges and bindings, per-consumer QoS/prefetch tuning, publisher confirms — i.e., requirements that a generic queue driver hides from you.
  • You are integrating with non-PHP services. Plain AMQP plus documented JSON message contracts is a genuinely low-coupling way to talk to Python/Node/Go consumers.
  • You are prepared to own the surrounding pieces: broker provisioning, monitoring (RabbitMQ management UI, Prometheus), and a serialization contract.

Look elsewhere when:

  • The need is just "run jobs in the background" on a Laravel app. Laravel's built-in redis/database/sqs queues, or enqueue/laravel-queue if you want the enqueue bridge, will get there with far less bespoke code. This package supplies tools, not a queue driver.
  • Your broker is Kafka, SQS, Redis, or Google Pub/Sub. Wrong protocol; use the broker-specific SDK.
  • The team has no AMQP/RabbitMQ operational experience and no appetite to acquire it. The failure modes here (unacked messages, unbounded prefetch, poison messages, connection churn) are operational, not syntactic, and they surface in production.
  • You require vendor SLAs or enterprise support. This is community-maintained, MIT, and hosted in a development repository — a genuine maintenance risk to price in.
  • Documentation depth is a hard requirement. Expect to lean on the umbrella docs site, the wider ecosystem, and your own internal runbook.

How to Pitch It (Stakeholders)

For executives (one paragraph): "We're proposing to standardise a few upcoming features — notifications, order processing, delayed reminders, and event publishing to our non-PHP services — on RabbitMQ, using a small open-source MIT-licensed PHP toolkit rather than building queue plumbing ourselves. The business case is time-to-market and resilience: delayed jobs, retries with backoff, and dead-letter handling come as configured behavior instead of custom code, and it keeps slow work off our web servers so page response times stay flat during traffic spikes. The costs are honest ones: it's free software with no vendor support, so we fund the integration and the operational runbook ourselves, and it only pays off if we commit to RabbitMQ as our messaging standard rather than adding it as a one-off. Recommendation: pilot on a single non-critical workflow next sprint, measure, then decide on wider adoption."

For engineering (the short version):

  • What it is: not a queue driver and not a Laravel integration — it's a tools package providing AMQP features outside the spec (delayed messages, retries, TTL, DLX helpers) that works with any amqp-interop transport. Pair it with enqueue/amqp-ext/php-amqplib and, for Laravel ergonomics, the enqueue Laravel bridge or a custom QueueManager::extend driver.
  • What you get: reusable retry/delay/DLQ primitives, publisher confirms, QoS control, and protocol-level interoperability with non-PHP consumers — without hand-rolling exchange/queue setup in every feature.
  • What you own: connection lifecycle (register as a container singleton), serialization contract (pick JSON and document it), consumer workers and supervision, broker provisioning and monitoring, and failure fallback.
  • Known risks to scope into the estimate: 0 dependents and readme-level maturity mean we validate against our PHP and RabbitMQ versions early; the repository is explicitly a development monorepo, so we track release stability and pin versions. Abstraction behind our own MessageProducer/MessageConsumer interfaces keeps the exit cost low if the ecosystem stalls.
  • Pilot definition of done: one workflow moved off the current queue driver, p95 dispatch-to-consume latency and failure/retry rates measured against the baseline, a runbook written, and a documented fallback path. That evidence decides whether we extend to the rest of the roadmap.
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.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
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
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core