Weave Code
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

iamfarhad/laravel-rabbitmq

Production-ready RabbitMQ queue driver for Laravel with native Queue integration. Built on ext-amqp with connection/channel pooling, configurable topology, Horizon hooks, Octane-safe resets, and optional high-performance basic_consume workers plus admin Artisan commands.

View on GitHub
Deep Wiki
Context7
1.3.0

What's Changed

v1.3.0

Highlights

This release upgrades Laravel RabbitMQ into a more production-focused queue driver with stronger RabbitMQ topology support, better Laravel ecosystem integration, and improved reliability.

Added

  • Multi-host RabbitMQ configuration support while preserving the previous single-host config format.
  • Read, write, and connect timeout configuration.
  • Configurable exchange, exchange type, and routing-key publishing for normal Laravel queue jobs.
  • Queue argument support for lazy queues, priority queues, quorum queues, delayed priority, and failed-message rerouting.
  • Optional Laravel Horizon integration via RABBITMQ_WORKER=horizon.
  • Horizon events for pending, pushed, reserved, deleted, and failed jobs.
  • Optional Laravel Octane AMQP pool reset via RABBITMQ_OCTANE_RESET_ON_REQUEST=true.
  • Optional high-performance basic_consume worker mode via:
    • RABBITMQ_CONSUME_MODE=consume
    • php artisan rabbitmq:consume --consume-mode=consume
  • RabbitMQ admin commands:
    • rabbitmq:exchange-declare
    • rabbitmq:queue-declare
    • rabbitmq:queue-purge
    • rabbitmq:queue-delete
  • New README documentation for production configuration, Horizon, Octane, consume mode, queue topology, and admin commands.

Changed

  • ext-pcntl is now optional and only suggested. It is required only when running rabbitmq:consume --num-processes greater than 1.
  • rabbitmq:consume --consumer-tag now accepts a value instead of behaving like a boolean flag.
  • Connection retry backoff is now scoped per connection attempt and no longer permanently increases delay for later connections.
  • CI test workflow no longer runs static analysis; it keeps formatting and PHPUnit/RabbitMQ tests.

Fixed

  • Published rabbitmq.php config is now correctly merged and used.
  • Cached AMQP channels are released after passive queue declaration misses, because RabbitMQ closes the channel on 404 responses.
  • Safer queue existence and queue size handling after missing queue checks.

Compatibility

  • Defaults remain backward compatible:
    • default exchange remains ''
    • polling remains the default consume mode
    • Horizon and Octane integrations are inactive unless configured and installed

Full Changelog: https://github.com/iamfarhad/LaravelRabbitMQ/compare/1.2.1...1.3.0

1.2.0

What's Changed

New Contributors

Full Changelog: https://github.com/iamfarhad/LaravelRabbitMQ/compare/1.1.0...1.2.0

1.1.0

Full Changelog: https://github.com/iamfarhad/LaravelRabbitMQ/compare/1.0.2...1.1.0

[1.1.0] - 2025-01-27

🚀 Major Advanced Features Added

Dead Letter Exchange (DLX)

  • Automatic DLX Setup: Easy configuration for failed message handling
  • Configurable TTL: Message time-to-live settings
  • Dead Letter Queues: Automatic creation of DLQ for each queue
  • Routing Key Control: Custom routing for dead-lettered messages
  • DLX Integration: Seamless integration with existing queues

Advanced Routing System

  • ExchangeManager: Comprehensive exchange management and routing
  • Topic Exchanges: Pattern-based message routing (e.g., user.*.email)
  • Fanout Exchanges: Broadcast messages to all bound queues
  • Headers Exchanges: Route based on message headers
  • Exchange Bindings: Flexible queue-to-exchange bindings

Multi-Queue & Multi-Exchange Support

  • Queue Configuration: Define multiple queues with different settings
  • Exchange Configuration: Configure multiple exchanges with various types
  • Lazy Queues: Optimize memory for high-volume queues
  • Priority Queues: Support for message and consumer priorities
  • Custom Arguments: Full control over queue and exchange arguments

Exponential Backoff Strategy

  • ExponentialBackoff: Intelligent retry mechanism with configurable parameters
  • Jitter Support: Prevents thundering herd problem with randomized delays
  • Configurable Multiplier: Customizable backoff progression
  • Max Delay Cap: Prevents excessive wait times
  • Execute Helper: Convenient wrapper for retry logic

RPC (Remote Procedure Call)

  • RpcClient: Synchronous request-response pattern
  • RpcServer: Handle RPC requests with callbacks
  • Correlation ID: Automatic request-response matching
  • Timeout Control: Configurable timeout for RPC calls
  • Reply Queue: Automatic callback queue management

Publisher Confirms

  • Reliable Delivery: Broker acknowledgment for published messages
  • Confirm Mode: Enable/disable publisher confirms
  • Wait for Confirms: Block until messages are confirmed
  • Pending Tracking: Track unconfirmed messages
  • Timeout Control: Configurable confirmation timeout

Transaction Management

  • AMQP Transactions: Full transaction support
  • Atomic Operations: Commit/rollback for multiple operations
  • Transaction Helper: Convenient transaction wrapper
  • Nested Transaction Prevention: Safety checks for transaction state
  • Error Handling: Automatic rollback on exceptions

Delayed Messages

  • TTL-Based Delay: Built-in delay using message TTL
  • Plugin Support: RabbitMQ delayed message exchange plugin
  • Flexible Scheduling: Schedule messages for future delivery
  • Header-Based Delay: x-delay header support
  • Configurable Exchange: Custom delayed exchange names
1.0.0

What's Changed

New Contributors

Full Changelog: https://github.com/iamfarhad/LaravelRabbitMQ/compare/v0.1.2...1.0.0

v0.1.2

What's Changed

New Contributors

Full Changelog: https://github.com/iamfarhad/LaravelRabbitMQ/compare/v0.1.1...v0.1.2

v0.1.1

Full Changelog: https://github.com/iamfarhad/LaravelRabbitMQ/compare/v0.1.0...v0.1.1

Added

  • Made RabbitMQ basic_qos settings (prefetch_size, prefetch_count, global) configurable via the queue.php or RabbitMQConnectionConfig.php configuration file.

Changed

  • Updated documentation to reflect the new basic_qos configuration options.

Fixed

  • N/A
v0.1.0

Full Changelog: https://github.com/iamfarhad/LaravelRabbitMQ/compare/v0.0.14...v0.1.0

  • added laravel 12 support
  • fix some issues
v0.0.12
v0.0.11
v0.0.9

Full Changelog: https://github.com/iamfarhad/LaravelRabbitMQ/compare/v0.0.8...v0.0.9

  • Fix critical bug in composer
v0.0.8

Full Changelog: https://github.com/iamfarhad/LaravelRabbitMQ/compare/v0.0.7...v0.0.8

Fix critical bug in declare queues

v0.0.4
v0.0.1

Full Changelog: https://github.com/iamfarhad/LaravelRabbitMQ/commits/v0.0.1

release first version

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.
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope