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

Symfony Messenger Polyfill Laravel Package

lendable/symfony-messenger-polyfill

A lightweight polyfill that provides Symfony Messenger-compatible classes and interfaces, letting Laravel and PHP projects use Messenger-style message buses without requiring the full Symfony component. Useful for package authors who need interoperability while keeping dependencies minimal.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Upgrade sequencing / roadmap phasing (primary use case). This is a compatibility shim, not a feature. It exists so a team on Symfony 3.4/4.0/4.1 can adopt the Messenger component's message bus and transport abstraction before committing to a full framework upgrade. As a PM, this informs the decision "do we defer the platform upgrade and unblock async processing now, or accelerate the upgrade?" — the polyfill is the cheap-but-temporary branch of that tree.
  • Build vs. buy vs. borrow. Zero dependents, 4 stars, archived since Jan 2019, one organizational maintainer (Lendable, a fintech that presumably wrote it for internal use and published as a courtesy). If adopted, treat it as borrowed source code you now own, not a vendor dependency. That reframes the decision from "add a package" to "budget a fork and a maintenance owner" — a materially different cost line.
  • Architecture standardization for legacy services. Supports a decision to standardize on Symfony Messenger's message/handler/envelope contract and middleware model (retries, failure transports, routing) across services of mixed framework vintage. Useful if you want one messaging vocabulary in the org rather than one library per app.
  • Ecosystem-fit triage for a Laravel-led product. Low direct leverage here. Laravel's queue system (jobs, events, failed-job table, Horizon, batched chains) is the idiomatic async path, and this package integrates with none of it — no service provider, no container bindings, no Laravel queue driver. The narrow exception: a legacy Symfony service living inside a PHP monorepo where you want a shared message contract across the boundary. In that case the value is interoperability, not the package itself.
  • Not a differentiator. Nothing here is customer-visible. It should never appear on a roadmap as a deliverable; it appears as a risk item and a cost-of-delay input to the upgrade plan.

When to Consider This Package

Adopt only when all of the following hold:

  • You run a Symfony 3.4 / 4.0 / 4.1 application — versions where symfony/messenger's dependency constraints cannot be satisfied.
  • You have a concrete, near-term need for a message bus or async transport (decoupling a slow write path, adding retries/failure handling) that cannot wait for the framework upgrade.
  • You accept the terms: fork it, pin it, own it. Budget an engineer to review the code, add it as a vendored/forked path dependency, wire your own CI and security scanning to it, and document the removal date. There is no upstream to patch a CVE, no maintainer to answer an issue, and no release cadence — the 2019 archive date is the whole support story.
  • The exit criterion is written before adoption: "removed when we land on Symfony ≥ 4.2 / 5.x," tied to a dated milestone in the upgrade epic.

Look elsewhere when:

  • You're on Symfony 4.2 or later — symfony/messenger is native; the polyfill is strictly dead weight.
  • You're on Laravel. Use the native queue and event system. If you genuinely want Messenger's middleware/envelope semantics, symfony/messenger is a decoupled component installable standalone via Composer in any PHP project — the polyfill is unnecessary because you're not constrained by an old framework version.
  • You can just upgrade. A framework upgrade is almost always cheaper than carrying an abandoned shim through a release cycle. Price both before choosing.
  • You need a supported broker client. For standalone PHP, evaluate php-amqplib (direct AMQP), enqueue/* or Symfony's own component on a modern framework — all have living maintainers.
  • You need a durable vendor relationship. MIT license is permissive and fine, but license ≠ support. Score 0.17 and 0 dependents should be read as "no ecosystem validation."

How to Pitch It (Stakeholders)

To executives (one line): This is a small, free, unmaintained compatibility patch that lets one legacy service do background message processing without waiting for a platform upgrade — it is a stopgap, not a strategy, and it carries an ownership cost we should fund explicitly or decline.

To engineering leadership: The package is abandoned upstream (archived 2019, single org, no dependents) and has no support path, including security. It's viable only as an internally forked, time-boxed shim with a named owner and a scheduled removal tied to the framework upgrade. Treat the risk as low-but-permanent and the carrying cost as real.

Recommendation: Decline as a standing dependency; approve only as a time-boxed internal fork. The expected value is roughly "two weeks of avoided upgrade pressure," and the expected cost is "an orphaned fork living in your tree indefinitely," which is the classic way these decisions go wrong. If the goal is messaging in a Laravel product, this package is not the answer — the native queue is. If the goal is messaging in a legacy Symfony service, price the framework upgrade first; the polyfill should only win when the upgrade is genuinely blocked by something larger, and even then it should come with a removal date on the calendar before the first commit lands.

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.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib