Configuring message payload
In kafka, you can configure your payload with a message, message headers and message key. All these configurations are available within ProducerBuilder class.
Support Laravel Kafka by sponsoring me!
Do you find Laravel Kafka valuable and wanna support its development?
Laravel Kafka is free and Open Source software, built to empower developers like you. Your support helps maintain and enhance the project. If you find it valuable, please consider sponsoring me on GitHub. Every contribution makes a difference and keeps the development going strong! Thank you!
Configuring message headers
To configure the message headers, use the withHeaders
method:
use Junges\Kafka\Facades\Kafka; Kafka::publish('broker') ->onTopic('topic') ->withHeaders([ 'header-key' => 'header-value' ])
Configure the message body
You can configure the message with the withMessage
or withBodyKey
methods.
The withMessage
sets the entire message, and it accepts a Junges\Kafka\Message\Message::class
instance as argument.
This is how you should use it:
use Junges\Kafka\Facades\Kafka; use Junges\Kafka\Message\Message; $message = new Message( headers: ['header-key' => 'header-value'], body: ['key' => 'value'], key: 'kafka key here' ) Kafka::publish('broker')->onTopic('topic')->withMessage($message);
The withBodyKey
method sets only a key in your message.
use Junges\Kafka\Facades\Kafka; Kafka::publish('broker')->onTopic('topic')->withBodyKey('key', 'value');
Using Kafka Keys
In Kafka, keys are used to determine the partition within a log to which a message get's appended to.
If you want to use a key in your message, you should use the withKafkaKey
method:
use Junges\Kafka\Facades\Kafka; Kafka::publish('broker')->onTopic('topic')->withKafkaKey('your-kafka-key');