m6web/kafka-bundle
Symfony bundle for integrating Apache Kafka into PHP applications, with configurable producers and consumers, php-rdkafka support, and console commands for publishing and consuming messages.
Bottom line: reject for new work. m6web/kafka-bundle is an archived, deprecated Symfony bundle last released in 2017 with 8 stars and zero dependents. It is not a Laravel package and should not be adopted into a Laravel codebase, regardless of the Kafka requirement.
Architecture fit
Bundle registration, EventDispatcher, and Console component — none of which map onto Laravel's service provider / facade / queue model.Queue, Worker, Job contracts). This bundle is service-centric: named producers and a long-running kafka:consumer command. There is no Queue driver, no ShouldQueue hook, no failed-job table integration.Integration feasibility
symfony/* to ~2.7|~3.0, which conflicts directly with Laravel 10/11 (Symfony 6/7 components). Installation requires forking and rewriting composer.json, then chasing transitive conflicts through its Kafka client dependency.each(), dynamic properties, removed mcrypt/create_function, missing return types) — a rewrite, not a patch.nmred/kafka-php-era) speaks the Kafka 0.8/0.9 protocol: no idempotent producer, no transactions, no incremental cooperative rebalancing, limited/no SASL-SCRAM or TLS config. That is a data-integrity gap on modern brokers, not just a feature gap.Technical risk
Key questions for the requesting team
Stack fit
| Dimension | Assessment |
|---|---|
| Framework | Symfony bundle → Laravel requires an adapter; no first-party fit |
| HTTP/queue layer | Does not use Laravel Queue/Job contracts; no failed-job, retry, or queue:work compatibility |
| PHP runtime | 2017-era code; incompatible with PHP 8.x without a fork |
| Auth/transport | Weak TLS/SASL support; blocks managed Kafka |
| Observability | No metrics, health checks, or structured logging hooks |
Recommended path: do not migrate, replace. Substitute a maintained option and treat the bundle as a design reference only.
ext-rdkafka (librdkafka) via mateusjunges/laravel-kafka — real Laravel service provider, config publishing, consumer commands, modern protocol and SASL/TLS support.enqueue/rdkafka if you need a transport-agnostic abstraction (RabbitMQ + Kafka behind one interface).Migration path (if a legacy deployment exists and must be retired)
Compatibility and sequencing
symfony/* versions will surface at autoload time.Maintenance
Support
Scaling
Failure modes to expect
Ramp-up
Recommendation: decline adoption. Record the decision with the broker-version, auth-mechanism, and PHP-version evidence from the spike, then direct the team to ext-rdkafka + a maintained Laravel package. If the requesting team's real need is asynchronous job processing rather than event streaming, redirect them to Laravel's native queue — the cheapest and lowest-risk outcome of all.
How can I help you explore Laravel packages today?