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

Messenger Bundle Laravel Package

invis1ble/messenger-bundle

A PHP Messenger bundle that simplifies wiring message buses, handlers, and transports into your application. It reduces boilerplate around configuration and integration, helping you build decoupled, asynchronous workflows with sensible defaults and a cleaner setup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor for a Laravel-primary stack, and unchanged by v6.2.0. The package remains a Symfony bundle, not a Laravel package. Bundles depend on Symfony\Component\HttpKernel\Bundle\Bundle, the Symfony service container, autoconfiguration tags, and compiler passes. Laravel has none of these. The v6.2.0 release reinforces the coupling rather than loosening it: the headline capability is Symfony 8 kernel support, validated by "real-kernel tests" for lint:container, autowired aliases, and service IDs — i.e. the value proposition is now more tightly bound to Symfony's container and kernel lifecycle, not less.

The stated scope still overlaps with contracts Laravel already ships: Illuminate\Contracts\Bus\Dispatcher, ShouldQueue, job middleware, Illuminate\Bus\Batch. Adoption still means a second bus abstraction plus a translation layer.

Integration feasibility — unchanged: viable only with material caveats. The two paths from the prior assessment still stand:

  1. Extract, don't install. Separating the interfaces from the bundle is no more tractable now — the release notes explicitly describe the deliverable in kernel terms (autowired aliases, lint:container, service IDs), all of which are bundle-scoped wiring. Vendoring the abstraction forfeits exactly what v6.2.0 spends its effort hardening.
  2. Co-exist as a Symfony service. Unchanged, and now has a cleaner upgrade story if the org runs Symfony 8.

Technical risk — downgraded from high to moderate-high, on engineering-process grounds only. Three prior concerns are materially addressed:

  • Release authenticity. The release links a concrete v6.1.1...v6.2.0 compare URL and uses --with-all-dependencies semver constraints, which corroborates a real tagged history. The previously flagged future-dated release (2026-09-29) now reads as a registry/metadata artifact rather than a dormant or fabricated repository — still worth verifying against GitHub tags, but no longer a blocker.
  • CI posture. Previously absent; now explicitly a matrix across Symfony 6.4, 7.4, 8.0, 8.1 on PHP 8.2, 8.4, and 8.5, with composer test, composer lint, and composer check targets. That is a credible baseline for a package this size.
  • Test depth. Real-kernel tests covering handler isolation, commands, query results, async event delivery, and traceable buses are a meaningful signal — kernel-level integration tests are the expensive kind and are the ones most likely to catch container-boot regressions.

Unaddressed and still the dominant risks:

  • No adoption evidence. The release notes add no dependents, no downstream consumers, no production references. Zero-star / zero-dependent status is not contradicted by better CI.
  • No security or deprecation policy. MIT remains the one unambiguous positive; there is still no CVE feed, disclosure process, or stated support commitment.
  • Dependency chain deepened. The bundle now pins invis1ble/messenger ^5.1 — a second versioned artifact in the chain, presumably the same maintainer namespace. Coupled upgrade cadence across two packages.

Key questions for the maintainer / spike (revised):

  • What is the supported Symfony/PHP matrix? Answered: Symfony ^6.4 || ^7.0 || ^8.0; PHP 8.2+ on 6.4/7.x; PHP 8.4+ on Symfony 8.0; PHP 8.4.1+ on 8.1.
  • Is there a tagged release history with changelogs? Answered: yes, with a per-release compare link and documented upgrade command.
  • New: what is the relationship to invis1ble/messenger 5.1 — is it maintained in lockstep, and does it carry its own support commitment?
  • New: "public bus interfaces and service IDs are unchanged" is a good stability signal — is that a stated backward-compatibility policy, or incidental to this release?
  • Still open: are the message and bus interfaces published as framework-agnostic packages, or inseparable from the bundle?
  • Still open: what semantics exceed Symfony Messenger's envelopes, stamps, and middleware stack — and does any of it exceed Laravel's native bus?
  • Still open: who is the maintainer, and is there a stated support commitment or security disclosure path?

Integration Approach

Stack fit. Laravel 10/11/12 with symfony/messenger remains technically possible, but the PHP floor has moved in a way that matters to us. Symfony 8.0 requires PHP 8.4+, and 8.1 requires 8.4.1+. Laravel 10 tops out below that; Laravel 11/12 reach PHP 8.4 but not comfortably at 8.4.1-onward as a floor. Adopting the Symfony 8 line would therefore pin our runtime ahead of where the Laravel upgrade train sits, or force us onto the Symfony 6.4/7.x branch, which is now the trailing edge of a matrix the maintainer has already moved past. Either way we own the wiring layer.

Migration path. Unchanged: no drop-in path. Ranked by cost:

Option Effort Verdict
Install bundle into Laravel — Not possible
Fork bundle, strip kernel coupling, wrap as Laravel service provider Medium–high Only if the abstraction is demonstrably superior; now also pins us to a PHP floor we don't control
Adopt raw symfony/messenger with custom Laravel transport Medium Reasonable if middleware/envelope semantics are the actual requirement
Reject and use Laravel's native bus/queue Low Still the default recommendation

Compatibility. The hard incompatibility remains conceptual duplication — two buses, two retry policies, two serialization contracts, two dead-letter stories — not versioning. v6.2.0's cleanliness across Symfony 6.4→8.1 makes the package easier to run, not easier to reconcile with a second bus. One must be nominated authoritative; the other a thin adapter.

Sequencing (revised):

  1. Retire the metadata concern. Confirm the GitHub tag history and Packagist release dates resolve the previously anomalous 2026-09-29 date. This is now a half-hour check, not a spike task.
  2. One-sprint spike, narrowed to two questions only: are the interfaces extractable, and is there a concrete capability gap versus Laravel's bus? Treat Symfony-8 support as not an answer to either.
  3. Decision gate: fork-and-own vs. reject. Default remains reject unless step 2 surfaces a gap we cannot close natively.
  4. If forking: publish internally with contract tests, an explicit supported-version matrix, a named owner, and — new — an explicit PHP floor policy, since the upstream now ratchets PHP independently of Laravel.
  5. Pilot on one bounded async flow (notifications or webhook fan-out) with shadow traffic; keep payment, order, and other idempotency-critical paths out of scope during the pilot.

Operational Impact

Maintenance. Improved but still net-negative for us. Upstream hygiene is now demonstrably real — CI matrix, real-kernel tests, documented composer test/lint/check, changelog-with-compare-link, and an upgrade path that holds public interfaces and service IDs stable. That materially lowers the odds of silent rot. However, if we fork we still absorb full ownership, and the upgrade vectors have gone from three to four: PHP minor versions, Symfony components, Laravel majors, and now invis1ble/messenger 5.x tracked alongside the bundle. Without a fork we inherit a dependency whose PHP floor can move ahead of our framework's.

Support. Marginally better — a maintainer shipping kernel-level integration tests and cross-version CI is a maintainer who will likely respond to a container-boot regression. But there is still no observable security disclosure policy, no CVE feed, no deprecation policy, and no support commitment. Internal on-call remains the only escalation path, and that must still be priced into the decision.

Scaling. Unchanged, and still not a throughput question. Transport governs throughput; this package does not change that. The cost stays organizational: two messaging paradigms means every engineer debugging a stuck message must know both Symfony Messenger's envelope/stamp/middleware model and Laravel's job/batch/failed-job model. That tax compounds with headcount, not traffic.

Failure modes to plan for (revised):

  • Silent message loss where serialization or acknowledgment semantics diverge between the two buses — still the highest-severity, hardest-to-detect risk.
  • Divergent retry and dead-letter behavior, producing messages that retry forever in one system and are discarded in the other.
  • PHP floor ratchet (new, replaces the deprioritized abandonment risk): Symfony 8's PHP 8.4.1+ floor arriving ahead of our Laravel upgrade cadence, forcing an unscheduled platform upgrade or a fork onto the now-trailing Symfony 6.4/7.x branch.
  • Container boot failure on Laravel or Symfony upgrades, presenting as an outage rather than a dependency warning. Partially mitigated by upstream real-kernel testing — but that testing guards their kernel, not our adapter.
  • Two-package version skew between invis1ble/messenger-bundle 6.x and invis1ble/messenger 5.x, where the compatible pairing is documented only in prose.
  • Orphaned dependency after maintainer stops publishing — downgraded; deprioritize as a near-term risk given the evinced release cadence, but do not delete from the register.
  • Metadata-driven false confidence — largely retired; keep only as a verification step in sequencing.

Ramp-up. Unchanged: high. A Laravel team still needs Symfony DI, compiler passes, and Messenger internals before shipping safely — realistically two to three weeks to productive competence, for a benefit that remains unproven. Nothing in v6.2.0 is a capability a Laravel team lacks; it is a compatibility and process release.

TPM recommendation — unchanged in substance. Do not integrate into the Laravel-primary estate. The v6.2.0 release is a genuinely good maintenance signal and justifies moving this from reject to watch-list, but it answers none of the questions that drove the rejection: there is still no adoption evidence, no security or deprecation policy, and no path to use the bundle inside Laravel. Re-evaluate only on (a) evidence of real dependents or production consumers, (b) a documented support and security commitment, or (c) republication of the interfaces as framework-agnostic artifacts. If the organization separately operates Symfony 8 services, this release makes adoption there considerably more attractive — upgrade, run the documented composer require, and confirm the PHP 8.4.1 floor against that service's runtime before rollout.

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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings