jarir-ahmed / message-broker
Framework-agnostic message broker facade for Kafka, RabbitMQ, Redis, SQS, Pub/Sub, MQTT, NATS, ZeroMQ, ActiveMQ, Azure Service Bus, and in-memory transports.
Package info
github.com/jarir2020/jarir-ahmed-message-broker
pkg:composer/jarir-ahmed/message-broker
v1.0.0
2026-06-11 00:58 UTC
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: ^10.5 || ^11.0
Suggests
- ext-rdkafka: Required to use KafkaBroker.
- ext-stomp: Required to use ActiveMQBroker through the native STOMP extension.
- aws/aws-sdk-php: Required to use SqsBroker.
- google/cloud-pubsub: Required to use GcpPubSubBroker.
- microsoft/azure-service-bus: Required to use AzureServiceBusBroker.
- php-amqplib/php-amqplib: Required to use RabbitMQBroker.
- php-mqtt/client: Required to use MqttBroker.
- php-nats/nats.php: Required to use NatsBroker.
- phpzmq/phpzmq: Required to use ZeroMqBroker.
- predis/predis: Required to use RedisBroker.
README
Framework-agnostic PHP message broker facade for publishing the same message through one or more transports.
Installation
composer require jarir-ahmed/message-broker
Install the optional client library for each transport you want to use.
Usage
use JarirAhmed\MessageBroker\MessageBroker; $broker = new MessageBroker( ['custom', 'rabbitmq'], [ 'rabbitmq' => [ 'host' => 'localhost', 'user' => 'guest', 'password' => 'guest', ], ] ); $broker->connect(); $broker->publish('orders.created', json_encode(['id' => 123], JSON_THROW_ON_ERROR)); $broker->close();
Supported broker names are:
activemqazureservicebuscustomgcppubsubkafkamqttnatsrabbitmqredissqszeromq
The custom broker is in-memory and has no external dependencies, which makes
it useful for tests and local development.