- What is exoticca/kafka-transport used for in Laravel?
- It is a Kafka transport for Laravel that adds a Kafka-backed queue driver. It lets Laravel jobs be published to Kafka topics and consumed by queue workers for asynchronous processing. It includes configurable producers and consumers plus worker integration.
- How do I install exoticca/kafka-transport in a Laravel application?
- Install it via Composer with composer require exoticca/kafka-transport, then publish any provided configuration if the package supports it. You will also need the rdkafka PHP extension and a reachable Kafka cluster configured in your Laravel queue settings. Verify the exact Laravel and PHP constraints in the package before adopting it.
- What Laravel and PHP versions are supported by exoticca/kafka-transport?
- The package is aimed at modern Laravel applications, with the evaluation context assuming Laravel 9+ and PHP 8.x. Because it is pre-1.0, you should confirm the actual composer.json constraints before upgrading. Test against your application's Laravel minor version and PHP runtime rather than relying on assumptions.
- Do I need ext-rdkafka or librdkafka to use this Kafka queue driver?
- Yes, a Kafka transport typically depends on the rdkafka PHP extension and the underlying librdkafka C client in your runtime image. Both the PHP extension version and librdkafka version must support the Kafka broker features you intend to use. Validate this in a staging image before rolling it into production workers.
- How do I configure Kafka producers and consumers for Laravel queues?
- Configuration defines how Laravel publishes jobs to Kafka topics and how workers consume from consumer groups. You should explicitly set broker addresses, topic names, group IDs, serialization, and commit or acknowledgement behavior. Check the published config and avoid relying on defaults for delivery-sensitive settings.
- Does exoticca/kafka-transport support consumer groups and cooperative rebalancing?
- The package context references cooperative rebalancing as a consumer-group capability, which matters when multiple worker replicas share a group. Cooperative rebalancing can reduce stop-the-world pauses during scaling and rolling deploys, but it does not provide exactly-once processing. Confirm whether the behavior is opt-in via config and what the default is in your pinned version.
- What delivery semantics should I expect from Kafka-backed Laravel jobs?
- Expect at-least-once delivery rather than exactly-once semantics. Duplicate processing is still possible, especially during rebalances, retries, or worker restarts. Design jobs to be idempotent and keep failed-job or dead-letter handling in your operational plan.
- Can I run mixed exoticca/kafka-transport versions in the same Kafka consumer group?
- You should treat each consumer group as an all-or-nothing compatibility boundary. Mixed assignor or client versions can cause failed assignments, rebalance loops, or repeated rebalances during rolling deployments. Upgrade every consumer instance in a group together unless you have verified protocol negotiation in a non-production environment.
- How should I test a Kafka queue driver before using it in production?
- Pin the exact package version and diff the published configuration before testing. Use a low-traffic topic with at least three consumer replicas so a real group rebalance occurs, then promote one production consumer group as a canary. Test rolling restarts, failed jobs, retries, and rollback procedures, not just happy-path message consumption.
- Is exoticca/kafka-transport a replacement for Redis queues or Laravel Horizon?
- It can replace Redis, SQS, or database queues when you specifically want Kafka topics as the queue backend. It is not a drop-in substitute for Horizon's Redis-centric introspection and tooling. Evaluate whether your team needs Kafka semantics, consumer groups, and event-driven integration enough to justify the extra operational complexity.