Skip to main content
Back to packages
721 GitHub stars

mateusjunges/laravel-kafka

View on GitHub

Description

A Kafka driver for Laravel.

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.

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

Recent Courses on Laravel Daily

Laravel 13 Starter Kit Teams and Customizations

10 lessons
33 min

Roles and Permissions in Laravel 13

14 lessons
57 min

Laravel 13 Eloquent: Expert Level

41 lessons
1 h 34 min

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.