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 Amqp

Laravel Amqp Laravel Package

bschmitt/laravel-amqp

Laravel AMQP is a wrapper for RabbitMQ that makes it easy to publish and consume messages from Laravel apps. Configure connections, exchanges, and queues; publish payloads; and run consumers or listeners with a clean facade and Artisan commands.

View on GitHub
Deep Wiki
Context7

bschmitt/laravel-amqp is a Laravel wrapper around the php-amqp extension that brings RabbitMQ messaging into your application with minimal boilerplate. It provides configuration-driven connections, exchanges, and queues, plus a fluent API for publishing and consuming messages—including Laravel event dispatching, logging, and error handling out of the box.

  • Publish and consume AMQP messages via simple, expressive APIs
  • Configurable connections, exchanges, queues, and routing keys
  • Automatic dispatching of consumed messages as Laravel events
  • Built-in logging and exception handling for reliable workers
  • Extensible via custom publishers, consumers, and serializers
Frequently asked questions about Laravel Amqp
What is bschmitt/laravel-amqp used for?
bschmitt/laravel-amqp is an AMQP wrapper for Laravel and Lumen that lets you publish and consume RabbitMQ messages through a clean facade and Laravel-friendly configuration. You can declare queues and exchanges, run consumers or workers, and use the newer opt-in typed RPC and messaging platform features such as sagas and retries. It is aimed at teams that want RabbitMQ integration without wiring php-amqplib directly.
How do I install and configure bschmitt/laravel-amqp in Laravel?
Install it with Composer using composer require bschmitt/laravel-amqp, then publish the package configuration and set your RabbitMQ host, port, credentials, queue, and exchange values. In Laravel the Amqp facade and auto-discovered service provider are available; in Lumen you typically register the provider and facade manually. Version 3.4.1 keeps the existing config layout unchanged, so current connection settings should continue to work.
Which Laravel versions does bschmitt/laravel-amqp support?
The provided release notes do not list exact Laravel or Lumen version constraints. Because 3.4.1 is described as purely additive and backwards compatible, previously supported versions should continue to work, but you should confirm the composer.json requirements and README before upgrading. Do not assume support for a specific Laravel major version without checking the package metadata.
Is bschmitt/laravel-amqp 3.4.1 backwards compatible with existing AMQP code?
The release notes state that existing handler signatures, configuration layout, and public surface are unchanged, the three-argument step() form is preserved, and the event bridge is off by default. Those are concrete backwards-compatibility claims, but the public surface list is truncated in the notes. Verify your own handler signatures and any reflection-based contract usage before deploying to production.
What new features were added in bschmitt/laravel-amqp 3.4.1?
Version 3.4.1 adds a typed RPC stack and a Laravel Messaging Platform layer on top of the existing AMQP client. The RPC layer is a thin abstraction over Request and Consumer::reply with Rpc and Saga facades, container-resolvable handlers, and timeout versus RPC exceptions. The platform layer is opt-in and includes sagas, retries, dead-letter queue handling, a message store, service discovery, causation tracing, metrics, and an event bridge. No new Composer dependencies or brokers are introduced.
Why is my Retry attribute silently ignored on PHP 7.x with bschmitt/laravel-amqp?
The #[Retry] attribute is documented as being parsed as a comment on PHP 7.x, which means a retry policy written on a PHP 7.4 runtime can silently perform zero retries. That is dangerous because there is no runtime failure to alert you. Use a hard guardrail such as a minimum PHP version check, upgrade to a supported PHP runtime, or implement retries outside the attribute and test the behavior explicitly.
Is InMemoryMessageStore safe for production workers in bschmitt/laravel-amqp?
InMemoryMessageStore is described as intended for tests and small workloads, and attaching it auto-records every publish and consume into process memory. In a long-running worker that is an unbounded memory growth path, and across a restart it is a silent data-loss path. Do not rely on it as a production message store; use a persistent store or disable it for production workers.
Does bschmitt/laravel-amqp require RabbitMQ Management API credentials?
DeadLetterManager::count() and messages() plus MonitoringDashboard depend on the RabbitMQ Management API, while replay and purge correctly fall back to the AMQP channel. That adds a new network path and credential requirement from your web or worker tier to the broker's management plugin. Treat it as a security review item and restrict management API access appropriately.
How should I test bschmitt/laravel-amqp consumers and RPC handlers?
Use InMemoryMessageStore and container-resolvable handlers for fast tests, but run integration tests against a real RabbitMQ instance for topology, reply queues, timeouts, and DLQ behavior. Because RPC semantics such as idempotency and reply-queue lifecycle are under-specified in the release notes, explicitly test duplicate delivery, timeout branching, and error envelope handling. Also test on your actual PHP version so the #[Retry] attribute is not silently ignored.
What are alternatives to bschmitt/laravel-amqp and is it actively maintained?
Alternatives include using php-amqplib directly or a Laravel queue RabbitMQ driver if you only need background jobs. This package is broader because it bundles typed RPC, sagas, retries, and DLQ tooling, but that also means more scope to evaluate. The provided evaluation is truncated on bus factor and support posture, so check release cadence, open issues, and maintainer activity before adopting it for critical services.
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.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo