krak/symfony-messenger-redis
Redis transport for Symfony Messenger, enabling asynchronous message dispatch and consumption through Redis. Integrates with Messenger’s transport system to support queue-based workflows in Symfony applications.
Verdict up front (unchanged): no-go for a Laravel/PHP stack. v0.1.8 does not alter the recommendation — it hardens it. The only functional change is "Support Symfony 5," which points the package's compatibility ceiling at an end-of-life Symfony major rather than toward the Symfony 7.x components that Laravel 11/12 depend on. Combined with no Laravel integration surface and near-zero adoption, this remains a transport shim for a problem Laravel already solves natively.
Architecture fit
Illuminate\Queue, integrated with queue:work, failed_jobs, events, batching, and Horizon. This package targets symfony/messenger's TransportInterface — a separate abstraction that Laravel's worker, dispatcher, and job lifecycle do not understand.dispatch()), and a Messenger bus for anything routed through this transport. That architectural tax buys a capability that is otherwise a config flag.Integration feasibility
ContainerInterface vs Laravel's), a custom messenger:consume command replacing queue:work, handler discovery, serialization wiring, retry/failure transport configuration, and a health/metrics story. Still a multi-week spike, not an afternoon.Technical risk
^5.x only — a hard composer conflict with any modern Laravel — or it was widened to ^5.4|^6.x, still short of 7.x. Both outcomes block adoption on our target version. This must be read from composer.json, not inferred from the changelog.Key questions (Q3 is now partially answered — and the answer is adverse; the rest stand)
XADD/XREADGROUP (Streams, ack + pending list) or LPUSH/BRPOP (fire-and-forget)? Unchanged and still the highest-value unknown.symfony/messenger ceiling now includes Symfony 5. Remaining sub-questions: (a) exact declared range in composer.json — ^5.x only, or ^5.4|^6.x? (b) is 6.3+/7.0 support planned or explicitly out of scope? (c) what PHP versions are declared, and does it resolve against our production Laravel minor without --ignore-platform-reqs?serialize() (class-name-coupled, breaks on rename) or JSON?BRPOP loop, and how does it behave on Redis reconnect or failover?Stack fit
Migration path
redis driver; handler classes map onto ShouldQueue jobs. Budget per handler, not per service.symfony/redis-messenger transport — same semantics, core-team maintained, tracks Symfony 7. v0.1.8 strengthens this conclusion rather than weakening it: the only gap this package could fill is Symfony 5, which is precisely the gap we do not have.Compatibility
symfony/messenger range from composer.json, PHP constraint, ext-redis vs predis/predis, and Redis server version (Streams require ≥5.0). Validate against the exact Laravel minor in production, not latest.Sequencing
composer.json from the v0.1.8 tag. If the symfony/messenger range excludes 6.4/7.x, stop — no spike required, no further analysis justified.composer require resolves cleanly against the target Laravel minor with no constraint flags. Failure is a hard stop.symfony/redis-messenger or the native driver without touching call sites.Maintenance
Support
Scaling
BRPOP loop scales fine for throughput and badly for reliability.Failure modes
serialize() is used and a message class is renamed or moved; in-flight messages become unreadable, making deploy ordering load-bearing.Ramp-up
queue:work and Horizon.symfony/redis-messenger with an explicit decision on whether to run Symfony Messenger alongside Laravel queues at all.How can I help you explore Laravel packages today?