- Is flaconi/enqueue-rdkafka-serializer-bundle compatible with Laravel?
- No. It is a Symfony bundle built around Symfony's dependency injection container, service tags, and compiler passes, and it ships no Laravel service provider or package discovery support. Its last release in August 2019 also constrains symfony/* to ^3.4/^4.x and PHP to ^7.1, so it would not install cleanly into a modern Laravel application's dependency graph anyway. Laravel teams that need Kafka serialization should use a maintained package or a first-party serializer implementation instead.
- How do I install flaconi/enqueue-rdkafka-serializer-bundle?
- You would run composer require flaconi/enqueue-rdkafka-serializer-bundle and then register the bundle in your Symfony kernel, or in config/bundles.php on Symfony 4. In practice the install fails on current stacks because the package pins symfony/* to ^3.4/^4.x and PHP to ^7.1. Forcing it through with --ignore-platform-reqs only moves the incompatibility from install time to runtime, so it is not a recommended workaround.
- Which Symfony and PHP versions does this bundle support?
- Based on the last release in August 2019, it targets Symfony ^3.4 and ^4.x with PHP ^7.1. That is two to three major Symfony versions and one PHP major behind current baselines. No compatibility updates have shipped since, so Symfony 5, 6, and 7 are effectively unsupported.
- What problem does this bundle actually solve?
- Enqueue's RdKafka transport builds a single serializer per transport context, but real Kafka estates usually need different serialization per topic family, for example JSON for internal events, Avro or Protobuf for governed streams, and raw bytes for legacy producers. This bundle solves that at the dependency injection level by exposing serializer services tagged or named per client and transport, so the transport factory can pick the right one. It is a configuration-ergonomics package rather than a deep architectural one, and the whole thing is plausibly a few hundred lines of Extension, Configuration, and compiler-pass code.
- Is flaconi/enqueue-rdkafka-serializer-bundle still maintained?
- No. The repository is archived, has roughly one star and zero dependents, and its last release was in August 2019. It also sits on enqueue/rdkafka, part of the Enqueue ecosystem that was deprecated in favor of Symfony Messenger. Treat it as read-only reference material rather than a dependency you would adopt.
- What should I use instead of Enqueue RdKafka for Kafka in Symfony?
- Symfony Messenger with a maintained php-rdkafka-backed transport is the standard replacement, and its transport-per-serializer model covers most heterogeneous serialization needs without any extra bundle. If Messenger's transport granularity is too coarse for your topic layout, implement a small SerializerLocator service keyed by transport name using a tagged iterator or service locator. Both options come with an actively supported lifecycle, which this bundle does not.
- How do I select a different serializer per Kafka transport in Symfony?
- The pattern this bundle documents is to register each serializer as a service, tag or name it per client and transport, and let a compiler pass wire those into the transport factory configuration. You can vendor that pattern into a first-party namespace without taking the abandoned package as a dependency. Add a smoke test that asserts the correct serializer is selected for each transport, because misrouting stays invisible in logs until deserialization fails on the consumer.
- Does this bundle require the ext-rdkafka PHP extension?
- Yes. It sits on enqueue/rdkafka, which wraps php-rdkafka and librdkafka, so ext-rdkafka must be compiled and pinned consistently across every runtime image. That is an infrastructure dependency the bundle does not and cannot manage for you. If maintaining a C extension build across your fleet is expensive, weigh that cost against a pure-PHP client before committing.
- Can I use this bundle with a newer version of enqueue/rdkafka?
- Not safely. The dependency graph is frozen at 2019, and pinning a newer enqueue/rdkafka can cause silent behavioral divergence because no compatibility work has been done upstream. Serializer-selection logic is also hard to observe at runtime, so failures tend to surface as deserialization errors on the consumer, far from the actual cause. If you must stay on Enqueue, fork the bundle into your own namespace, bump the PHP and Symfony constraints, and add tests around serializer routing.
- What are the risks of running this bundle in production?
- The main risks are an unmaintained dependency graph with unpatched transitive CVEs, a bus factor of zero with no maintainer to answer questions or review pull requests, and no downstream usage to surface bugs or compatibility fixes. A wrong serializer choice also fails silently, showing up as consumer-side deserialization errors rather than at the producer. For a greenfield project the answer is to skip Enqueue entirely and use Symfony Messenger.