Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Rossel Kafka Laravel Package

rossel/rossel-kafka

rossel/rossel-kafka provides Kafka integration for Laravel and PHP applications, helping you configure producers and consumers, publish messages to topics, and process Kafka events using familiar Laravel conventions. Useful for event streaming and service-to-service messaging.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

Framework fit (corrected by 0.7.0): Release notes confirm this is a Symfony bundle — composer type is now symfony-bundle, RosselKafkaBundle extends AbstractBundle, and registration happens via config/bundles.php/Flex. Despite the Laravel framing in earlier drafts, this is not a Laravel package. Any roadmap item targeting Laravel services needs a separate adapter decision; scope this assessment to Symfony/PHP services only.

  • Event-driven feature delivery: Publish/consume on Rossel Kafka without custom librdkafka client code — asynchronous workflows, domain events, cross-service integration.
  • Symfony 6.4 LTS alignment (new): Official 6.4 support plus Flex auto-registration materially lowers onboarding cost and keeps adopting teams on a supported LTS branch. This is the strongest positive signal in the release and unblocks services still pinned to older Symfony versions.
  • Runtime efficiency as a product lever (new): Lazy SSL/CA resolution and a lazy producer mean consume-only apps never open a producer connection, and apps that never touch Kafka pay nothing at boot. Fewer connections and faster cold starts translate to infra savings and lower container memory — usable as a cost argument in build-vs-buy.
  • Delivery-semantics decision (new, high priority): Auto-commit is now disabled; offsets commit only after processing. This upgrades the contract to at-least-once, meaning a message can be redelivered on restart. PMs must write idempotency into the acceptance criteria of every consumer (dedupe keys on payments, notifications, inventory) or users will see duplicate side effects.
  • Poison-message policy decision (new, high priority): A failing message no longer halts rossel:kafka:listen — it is logged, acknowledged, and skipped. Without a dead-letter path or alerting, failed events silently disappear. Product must decide, per topic, whether silent-skip is acceptable (telemetry, low-value events) or requires a DLQ, retry topic, or replay tooling before go-live.
  • Upgrade cost as roadmap work (new): 0.6.2 → 0.7.0 is a breaking release on a minor version. Removed enqueue bundle and default transport, removed MessageHeadersInterface, RdKafkaMessageWrapperInterface, UnsupportedTopicException, logger-free MessageFactory, removed extension/Configuration/services.yaml, ValueError instead of BadRequestException, and broker/producer config now mandatory. Budget a migration spike and a coordinated rollout window per consuming service; do not adopt without pinning versions.
  • Reduced dependency surface (new): Dropping enqueue/enqueue-bundle and enqueue/fs shrinks the supply chain and audit scope — a security/compliance talking point, but a hard break for any team that relied on the pre-configured default transport.
  • Observability/cost control (new): producer.send_log_messages (default true) lets teams suppress EXEC_* log volume; the one-log-per-message change makes log-based metrics and cost predictable. Pair with a decision on where delivery failures surface.
  • Contract ownership moves to consumers (new): Consumed bodies are no longer JSON-decoded/re-encoded — payloads arrive verbatim. Schema decoding, versioning, and validation become explicit consumer responsibilities; document this in the shared event contract.
  • Standardization: One integration pattern across teams, paired with conventions for topic naming, schemas, retries, idempotency, DLQ, and ownership.
  • Adoption-risk decision (unchanged, now evidenced): 1 star, 0 dependents, single maintainer, still pre-1.0, and breaking changes landing in minor releases. Treat as a strategic internal dependency with a named owner, support model, pinned versions, and an exit plan.

When to Consider This Package

  • You are building PHP/Symfony services (not Laravel) that must communicate with Rossel's Kafka infrastructure.
  • You need both production and consumption paths and want a maintained abstraction rather than hand-rolled librdkafka handling.
  • Rossel has mandated Kafka as the integration backbone, or you are standardizing event-driven patterns across teams and want a single blessed bundle.
  • You are on, or moving to, Symfony 6.4 LTS and want Flex auto-registration.
  • You can absorb a breaking minor release. Concretely: you can pin the version, can run the UPGRADE-0.7.md migration, and can coordinate restarts across consumers.
  • You can commit to idempotent consumers. At-least-once delivery is now the contract; if your domain cannot tolerate duplicates (billing, entitlements, inventory) and you cannot build dedupe, stop here.
  • You can supply the failure path yourself. The listener skips and ACKs failures; you need DLQ/retry/alerting around it, or an explicit written acceptance of silent drops per topic.
  • Look elsewhere if: you are not on Rossel Kafka; you are a Laravel shop unwilling to maintain an adapter; you use non-PHP services; you need advanced Kafka features the package does not expose (transactions, exactly-once, consumer groups tuning, headers APIs removed in 0.7.0); you depend on the enqueue bundle or the removed extension/config classes; you require broad community support or vendor backing; your scale does not justify Kafka and a queue/database job would do; or you cannot accept lock-in to a low-adoption internal dependency that ships BC breaks on minor versions.

How to Pitch It (Stakeholders)

  • Executive summary: This package removes custom Kafka plumbing from Symfony services and now supports Symfony 6.4 LTS with Flex auto-registration, making event-driven delivery cheaper to start and cheaper to run (lazy connections, no producer in consume-only apps, trimmed dependencies). Position it as an internal strategic dependency, not a general open-source bet: single maintainer, pre-1.0, and 0.7.0 ships breaking changes on a minor version.
  • For engineering: 0.7.0 is a planned migration, not a drop-in. Remove EnqueueBundle, drop references to the deleted interfaces and extension classes, make broker/producer config explicit, and expect ValueError from MessageType::from(). Two behavioral changes dominate design: consumers must be idempotent (auto-commit off, at-least-once on restart) and failures no longer stop the listener (message logged, ACKed, skipped) — so build dead-letter/retry/alerting alongside any critical topic. Wrap the bundle so Kafka types don't leak across domains; keep payload decoding in your own layer since bodies now arrive verbatim.
  • For product: Use it where async messaging creates user-visible value — faster workflows, decoupled releases, resilient integrations — and lead with the runtime and LTS wins. Gate adoption on three things: a short migration spike against UPGRADE-0.7.md, a support/maintenance check with the named owner, and written acceptance of duplicate-delivery and failed-message-skip behavior for each topic. Add idempotency and DLQ requirements to the definition of done for every consuming feature. If Rossel Kafka is not the target platform — or the team is on Laravel — defer and use a standard client or queue instead.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource