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');