Skip to main content
Back to packages
724 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

Next.js Basics for Laravel Developers

11 lessons
58 min

Roles and Permissions in Laravel 13

14 lessons
57 min

Laravel 13 Eloquent: Expert Level

41 lessons
1 h 34 min