mateusjunges/laravel-kafka
Laravel Kafka brings a clean Laravel-friendly API for producing and consuming Kafka messages, with an emphasis on developer experience and easier testing. Ideal for integrating Kafka streams and event-driven workflows into your Laravel applications.
To publish your messages to Kafka, you can use the publish method, of Junges\Kafka\Facades\Kafka class:
use Junges\Kafka\Facades\Kafka;
Kafka::publish('broker')->onTopic('topic-name')
This method returns a ProducerBuilder instance, which contains a few methods to configure your kafka producer.
The following lines describes these methods.
If you are going to produce a lot of messages to different topics, please use the asyncPublish method on the Junges\Kafka\Facades\Kafka class:
use Junges\Kafka\Facades\Kafka;
Kafka::asyncPublish('broker')->onTopic('topic-name')
The main difference is that the Async Producer is a singleton and will only flush the producer when the application is shutting down, instead of after each send. This reduces the overhead when you want to send a lot of messages in your request handlers.
<x-sponsors.request-sponsor/>
When doing async publishing, the builder is stored in memory during the entire request. If you need to use a fresh producer, you may use the fresh method
available on the Kafka facade (added in v2.2.0). This method will return a fresh Kafka Manager, which you can use to produce messages with a newly created producer builder.
use Junges\Kafka\Facades\Kafka;
Kafka::fresh()
->asyncPublish('broker')
->onTopic('topic-name')
How can I help you explore Laravel packages today?