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.
user.*.email)'backoff' => [
'enabled' => true,
'base_delay' => 1000,
'max_delay' => 60000,
'multiplier' => 2.0,
'jitter' => true,
],
'exchanges' => [
'default' => [...],
'notifications' => [...],
// Custom exchanges
],
'queues' => [
'default' => [...],
'high-priority' => [...],
// Custom queues
],
'dead_letter' => [
'enabled' => true,
'exchange' => 'dlx',
'exchange_type' => 'direct',
'queue_suffix' => '.dlq',
],
'delayed_message' => [
'enabled' => false,
'plugin_enabled' => false,
],
'rpc' => [
'enabled' => false,
'timeout' => 30,
],
'publisher_confirms' => [
'enabled' => false,
'timeout' => 5,
],
'transactions' => [
'enabled' => false,
],
RABBITMQ_BACKOFF_ENABLED - Enable exponential backoffRABBITMQ_BACKOFF_BASE_DELAY - Base delay in millisecondsRABBITMQ_BACKOFF_MAX_DELAY - Maximum delay in millisecondsRABBITMQ_BACKOFF_MULTIPLIER - Delay multiplierRABBITMQ_BACKOFF_JITTER - Enable jitterRABBITMQ_DLX_ENABLED - Enable dead letter exchangeRABBITMQ_DLX_EXCHANGE - DLX exchange nameRABBITMQ_DLX_EXCHANGE_TYPE - DLX exchange typeRABBITMQ_DLX_QUEUE_SUFFIX - DLQ suffixRABBITMQ_DLX_TTL - Message TTL in millisecondsRABBITMQ_DELAYED_MESSAGE_ENABLED - Enable delayed messagesRABBITMQ_DELAYED_PLUGIN_ENABLED - Use delayed message pluginRABBITMQ_DELAYED_EXCHANGE - Delayed exchange nameRABBITMQ_RPC_ENABLED - Enable RPC supportRABBITMQ_RPC_TIMEOUT - RPC timeout in secondsRABBITMQ_RPC_CALLBACK_PREFIX - RPC callback queue prefixRABBITMQ_PUBLISHER_CONFIRMS_ENABLED - Enable publisher confirmsRABBITMQ_PUBLISHER_CONFIRMS_TIMEOUT - Publisher confirms timeoutRABBITMQ_TRANSACTIONS_ENABLED - Enable transactions// Advanced queue declaration
$queue->declareAdvancedQueue($name, $durable, $autoDelete, $lazy, $priority, $deadLetterConfig);
// Exchange management
$queue->getExchangeManager();
$queue->publishToExchange($exchange, $payload, $routingKey, $headers);
// Backoff and retry
$queue->getBackoff();
// Publisher confirms
$queue->getPublisherConfirms();
// Transactions
$queue->getTransactionManager();
$queue->transaction(callable $callback);
// RPC
$queue->getRpcClient();
$queue->rpcCall($queue, $message, $headers);
// Dead letter exchange
$queue->setupDeadLetterExchange($queueName, $dlxName, $dlxRoutingKey);
// Delayed messages
$queue->publishDelayed($queue, $payload, $delay, $headers);
ExchangeManager - Exchange and routing managementExponentialBackoff - Retry logic with exponential backoffRpcClient - RPC client implementationRpcServer - RPC server implementationPublisherConfirms - Publisher confirm handlingTransactionManager - Transaction managementNone. All new features are opt-in and backward compatible.
How can I help you explore Laravel packages today?