mmoreram/rsqueue-bundle
A Symfony bundle that integrates RSQueue, a Redis-backed message queue, into your application. It provides configuration, DI services, and console commands for producing and consuming jobs across distributed workers.
Architecture fit — Poor for a Laravel codebase. RSQueueBundle is a Symfony2 bundle, not a framework-agnostic library: its value is delivered through Symfony's DI extension mechanism, compiler passes, tagged services, and console commands registered against the Symfony2 kernel. Laravel has no bundle loader, so the package's primary integration surface is inert. At best, an underlying Redis queue client could be extracted and hand-wired into Laravel's container; at worst, the package is a thin opinionated wrapper with no reusable core. This must be verified by reading the source before any commitment.
Integration feasibility — Low. Three independent blockers stack up:
--ignore-platform-reqs or a fork, Symfony2-era code commonly trips on PHP 8 (removed functions, dynamic property deprecations, missing return types).Queue, Job, Worker) is not satisfied by this package's abstractions, so native Laravel features — dispatch(), job middleware, failed_jobs, queue:work — would not apply without an adapter layer that essentially reimplements the package.Technical risk — High and mostly unrecoverable:
Key questions
RSQueue library the bundle merely decorates), or is all logic inside bundle classes? This single answer determines whether option B below exists.composer.json require for php and symfony/*, and does it support any PHP 8 line?serialize/unserialize on queue payloads, and is there a signature or allow-list guard?BLPOP fire-and-forget, or a reliable-queue pattern with in-flight/ack semantics?Stack fit — Effectively zero as shipped. Laravel's queue subsystem already provides Redis-backed drivers, delayed jobs, retries with backoff, failed_jobs persistence, batching, and Horizon supervision. The only differentiated capability this package might offer — a bespoke serializer/compression pipeline or a specific multi-queue routing scheme — is narrowly scoped and reproducible in a few hundred lines against Laravel's Illuminate\Queue contracts.
Migration path — Recommend a concept extraction, not a package adoption:
Job serializer or a queue-name resolver behind Laravel's existing extension points.RSQueue core exists and passes a PHP 8 audit, vendor that library directly and write a thin Laravel Queue adapter. Bound the effort and require a fork we control.Compatibility — Expect hard conflicts on PHP and Symfony component versions. Any path forward requires a fork with modernized constraints, which converts a dependency decision into an ongoing maintenance line item. The payload format is the real compatibility boundary: pin and version it explicitly (JSON with a schema, not PHP serialization) if two runtimes must share the queue.
Sequencing
composer.json and source; answer the six key questions; produce a one-page go/no-go.Maintenance — The dominant cost. With no upstream releases since 2016, every future PHP minor becomes an internal patch. Budget a standing allocation for fork upkeep, or accept the package as frozen and schedule its replacement at the same time you adopt it. A dependency whose only maintenance plan is "we maintain it" should be justified against building the equivalent in-house — and here the equivalent is a small amount of code on top of components Laravel already ships.
Support — No vendor, no SLA, no active maintainer, no dependents to consult. Incident response depends entirely on internal source reading. Onboarding documentation is Symfony2-era and will mislead a Laravel team. This is the highest-friction, lowest-leverage support profile available.
Scaling — Redis as a broker scales adequately for typical job volumes; the package is not the constraint there. The constraint is operational tooling: no built-in metrics, no worker autoscaling, no dashboard, no structured failure inspection. Laravel provides all of this through Horizon. Horizontal worker scaling is feasible only if the package's worker command can be supervised by our process manager and handles SIGTERM gracefully — an open question for a 2016 codebase.
Failure modes — Prioritize these in design review:
unserialize on broker-sourced payloads is an RCE vector; require JSON plus schema validation regardless of which option is chosen.--max-jobs/--max-time equivalents).Ramp-up — Deceptively expensive. The API looks small, but with no documentation, no examples from real users, and no community, engineers learn the behavior by reading source and by production incident. Estimate several days per engineer to reach productive confidence, versus hours for Laravel's documented queue API. That differential is the clearest signal in this evaluation: the package asks the team to pay a learning and maintenance tax to obtain functionality the framework already provides.
Recommendation — Do not adopt. Close the evaluation unless the diligence spike in step 1 uncovers a genuinely framework-agnostic core with a clean PHP 8 path and a payload format we need for legacy interoperability — in which case pursue Option C strictly as a time-boxed bridge with a scheduled retirement date.
How can I help you explore Laravel packages today?