Skip to content

v1.3.0

Build event-driven systems: one service publishes an event, any number of other services react to it. Nothing is loaded or required unless you use it. See the Event streaming guide.

  • Naluz\Messaging: EventBus (publish, dispatch(PublishableEvent)), Consumer, Subscriber, BrokerManager, MessagingServiceProvider.
  • Consumer groups, at-least-once delivery, per-group retries, dead-letter topics (<topic>.dlq).
  • Optional HMAC-SHA256 message signing with key rotation; JSON-only parsing, size and depth limits, topic-name validation.
  • Drivers: memory (tests), redis (Redis Streams, no extra dependency), rabbitmq (php-amqplib/php-amqplib), kafka (ext-rdkafka).
  • Commands: messaging:consume, messaging:declare, messaging:publish, make:subscriber.
  • Skeleton: config/messaging.php and MESSAGING_* variables in .env.example.
  • Subscribers must be idempotent (delivery is at-least-once).
  • Redis Streams is tested against a real Redis; RabbitMQ and Kafka are tested against stand-ins for their client libraries, so try them against your own broker first.
Terminal window
composer require naluz/framework:^1.3.0

No breaking changes. In an existing application, copy config/messaging.php from the skeleton if you want to use event streaming.