PHPackages                             atcliff/kafka-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. atcliff/kafka-bundle

ActiveSymfony-bundle[HTTP &amp; Networking](/categories/http)

atcliff/kafka-bundle
====================

Bundle to consume and produce messages from/to Apache Kafka.

1.0.1(1y ago)010MITPHPPHP &gt;=7.4

Since Nov 8Pushed 1y agoCompare

[ Source](https://github.com/AtCliffUnderline/kafka-bundle)[ Packagist](https://packagist.org/packages/atcliff/kafka-bundle)[ RSS](/packages/atcliff-kafka-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (15)Versions (4)Used By (0)

[![kafka-bundle](https://user-images.githubusercontent.com/12221744/138563639-180ddfe2-a922-4fa5-a29a-d3140f50621d.png)](https://user-images.githubusercontent.com/12221744/138563639-180ddfe2-a922-4fa5-a29a-d3140f50621d.png)

- [Technology stack](#technology-stack)
- [Quick start](#quick-start)
- [Example project](#example-project)
- [Basic Configuration](#basic-configuration)
- [Consuming messages](#consuming-messages)
- [Retrying failed messages](#retrying-failed-messages)
- [Handling offsets](#handling-offsets)
- [Decoders](#decoders)
- [Denormalizers](#denormalizers)
- [Validators](#validators)
- [Events](#events)
- [Kafka Callbacks](#kafka-callbacks)
- [Producing Messages](#producing-messages)
- [Custom configurations](#custom-configurations)
- [Showing current consumer/producer configuration](#showing-current-consumer-producer-configuration)
- [License](#license)

Technology stack
================

[](#technology-stack)

- PHP &gt;=7.4
- ext-rdkafka for PHP
- symfony components: refer to composer.json `require` section for required package versions

Quick start
===========

[](#quick-start)

If you wish to install it in your Symfony project:

```
composer require sts-gaming-group/kafka-bundle

```

Example project
===============

[](#example-project)

If you want to test out capabilities of this bundle in a Symfony project, please refer to **** project which ships with kafka-bundle and docker-compose file for convenience.

Basic Configuration
===================

[](#basic-configuration)

1. Add **sts\_gaming\_group\_kafka.yaml** to config folder at **config/packages/sts\_gaming\_group\_kafka.yaml** or in a specific env folder i.e. **config/packages/prod/sts\_gaming\_group\_kafka.yaml**
2. Add configuration to sts\_gaming\_group\_kafka.yaml for example:

```
sts_gaming_group_kafka:
 consumers:
   instances:
     App\Consumers\ExampleConsumer:
       brokers: [ '127.0.0.1:9092', '127.0.0.2:9092', '127.0.0.3:9092' ]
       schema_registry: 'http://127.0.0.1:8081'
       group_id: 'some_group_id'
       topics: [ 'some_topic' ]
 producers:
   instances:
     App\Producers\ExampleProducer:
       brokers: [ '127.0.0.1:9092', '127.0.0.2:9092', '127.0.0.3:9092' ]
       producer_topic: 'my_app_failed_message_topic'
```

3. Most of the time you would like to keep your kafka configuration in the yaml file, but you can also pass configuration directly in CLI for example:

```
bin/console kafka:consumers:consume example_consumer --group_id some_other_group_id

```

Currently, options passed in CLI only work for consumers which are run by command `kafka:consumers:consume`.

The configurations are resolved in runtime. The priority is as follows:

- Configurations passed in CLI will always take precedence
- Configurations passed per consumer/producer basis (`instances:` section in `consumers:` or `producers:` in sts\_gaming\_group\_kafka.yaml)

Consuming messages
==================

[](#consuming-messages)

1. Create consumer

```
