Producing message batch to kafka
You can publish multiple messages at the same time by using message batches.
To use a message batch, you must create a Junges\Kafka\Producers\MessageBatch
instance.
Then create as many messages as you want and push them to the MesageBatch
instance.
Finally, create your producer and call the sendBatch
, passing the MessageBatch
instance as a parameter.
This is helpful when you persist messages in storage before publishing (e.g. TransactionalOutbox Pattern).
use Junges\Kafka\Facades\Kafka; use Junges\Kafka\Producers\MessageBatch; use Junges\Kafka\Message\Message; $message = new Message( headers: ['header-key' => 'header-value'], body: ['key' => 'value'], key: 'kafka key here' ) $messageBatch = new MessageBatch(); $messageBatch->push($message); $messageBatch->push($message); $messageBatch->push($message); $messageBatch->push($message); /** @var \Junges\Kafka\Producers\ProducerBuilder $producer */ $producer = Kafka::publishOn('topic') ->withConfigOptions(['key' => 'value']); $producer->sendBatch($messageBatch);