halloverden/symfony-messenger-queue-notifications-bundle
Symfony bundle for sending notifications through Messenger queues. Dispatch notification messages asynchronously and process them with workers via your configured transports, keeping your application responsive. Simple integration with Symfony Messenger for queued notification delivery.
symfony/messenger directly), so the decision is less "buy" and more "adopt, fork, or replicate." That's a favorable decision shape: low switching cost either way.symfony/messenger. For a Laravel product this is a non-option: Laravel ships queueable notifications natively (ShouldQueue, Notification::route, channel drivers). If the fleet is Laravel, the decision this package supports is "confirm we don't need it" — and the answer is no.Consider it when:
symfony/messenger with a real transport (Redis, AMQP, Doctrine, SQS).Look elsewhere when:
Notification::route() for on-demand recipients, and community channel packages. Adopting a Symfony bundle here is architecturally wrong, not merely inconvenient.Adoption criteria I'd actually gate on: (1) Symfony, confirmed; (2) a 1-day spike proving it works against your transport; (3) a named internal owner; (4) forked into your VCS with a pinned commit; (5) a documented exit path back to raw Messenger.
One-line: A small Symfony bundle that moves notification sending onto the Messenger queue — useful glue if you're on Symfony, irrelevant if you're on Laravel, and unproven either way.
For executives: This is a low-cost experiment, not a platform commitment. It removes a recurring piece of bespoke plumbing at near-zero license cost and near-zero integration cost. The trade-off is maturity: no community adoption, no support, single maintainer. Recommendation is a timeboxed spike with an internal owner and a forked copy — we own it or we don't use it. Do not put it on a revenue-critical path on the strength of the package alone.
For engineering: The package is a thin layer over symfony/messenger — message, handler, transport routing. The real work isn't adoption, it's the surrounding reliability story: retry and backoff policy, failure/dead-letter handling, idempotency, and observability on the consumer side. Treat the bundle as a starting contract, not a solution. If we're a Laravel shop, stop here — native queueable notifications already cover this and we should invest the effort in channel drivers and preference management instead. If we're Symfony, the honest comparison is "fork this in an hour" vs. "install it and inherit an unmaintained dependency," and forking usually wins at this maturity level.
How can I help you explore Laravel packages today?