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!

Want to hide this message? Sponsor at any tier of $10/month or more!

To configure the message headers, use the withHeaders method:

use Junges\Kafka\Facades\Kafka;

Kafka::publish('broker')
    ->onTopic('topic')
    ->withHeaders([
        'header-key' => 'header-value'
    ])

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

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');
Previous
Configuring your kafka producer