Download the PHP package iperson1337/messenger-kafka without Composer
On this page you can find all versions of the php package iperson1337/messenger-kafka. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package messenger-kafka
Symfony Messenger Kafka Transport
This bundle provides a robust Kafka transport integration for Symfony Messenger, allowing you to easily send and receive messages through Apache Kafka. It supports both producers and consumers with a flexible configuration system.
Features
- Simple integration with Symfony Messenger
- Support for both producers and consumers
- Configurable message serialization
- Flexible topic configuration
- Support for message headers and keys
- Asynchronous message processing
- Detailed logging and error handling
- Compatible with Pimcore
Installation
Applications that use Symfony Flex
Open a command console, enter your project directory and execute:
Applications that don't use Symfony Flex
After adding the composer requirement, enable the bundle by adding it to the list of registered bundles
in the config/bundles.php file of your project:
Configuration
DSN
Specify a DSN starting with either kafka:// or kafka+ssl://. Multiple brokers are separated by ,.
kafka://my-local-kafka:9092kafka+ssl://my-staging-kafka:9093kafka+ssl://prod-kafka-01:9093,kafka+ssl://prod-kafka-02:9093,kafka+ssl://prod-kafka-03:9093
Example
The configuration options for kafka_conf and topic_conf can be found here.
It is highly recommended to set enable.auto.offset.store to false for consumers. Otherwise, every message will be acknowledged, regardless of any error thrown by the message handlers.
Serializer
You will most likely want to implement your own Serializer. Please see: https://symfony.com/doc/current/messenger.html#serializing-messages
The fields key, headers, and body are available in the decode() and encode() methods.
How do I work with Avro?
Same as with the basic example above, you need to build your own serializer.
Within the decode() and encode() you can make use of flix-tech/avro-serde-php.
What about the Confluent Schema Registry?
To connect with Schema Registry and control various settings, you can use this bundle:
And configure it to match your setup:
Please see https://github.com/KonstantinCodes/avro-regy for the full documentation.
All versions of messenger-kafka with dependencies
ext-json Version *
symfony/config Version ^3.0||^4.0||^5.0||^6.0||7.*
symfony/dependency-injection Version ^3.4.26||^4.1.12|^5.0||^6.0||7.*
symfony/http-kernel Version ^3.0||^4.0||^5.0||^6.0||7.*
symfony/messenger Version ^4.4||^5.0||^6.0||7.*
psr/http-client Version ^1.0
psr/http-factory Version ^1.0
psr/http-message Version ^1.0 || ^2.0
psr/log Version ^1.0.1||^2.0 ||^3.0