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

Rsqueue Bundle Laravel Package

rsqueue/rsqueue-bundle

RSQueue Bundle adds a Redis-backed queue to PHP applications: push jobs, run workers, schedule delayed tasks, and monitor throughput with simple configuration. It scales from single-process scripts to distributed worker pools without extra infrastructure.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. rsqueue/rsqueue-bundle is a Symfony2 bundle, not a Laravel package. It is a thin integration layer: a Symfony DI extension that registers queue services, a semantic configuration tree, and console commands for worker processes, wrapping a Redis-backed queue (LPUSH/BRPOP-style list operations with PHP serialization of payloads). It targets the Symfony 2.x lifecycle (2.3 LTS through 2.8), which reached end of life in November 2018 — the same period as the package's last release. Against a Laravel codebase the fit is effectively zero: Laravel has no bundle/DI-extension concept, no AppKernel, and its service container, config loader, and console kernel are all incompatible surfaces. Adopting this means either standing up a Symfony 2 application alongside Laravel purely to run queue workers, or forking and rewriting the integration layer — at which point you are no longer "leveraging" the package.

Integration feasibility. Low as shipped. The viable path is to treat the repository as a reference implementation rather than a dependency: read the Redis key schema, blocking-pop loop, and serialization format, then reimplement ~200–400 lines as a native Laravel queue driver or a small internal package. That is a genuine option because the underlying mechanism is simple and Redis-native — but it also means the package's 11 stars and 0 dependents buy you nothing over just writing it. A direct Composer require into a Laravel app will fail on Symfony 2 component constraints and will not boot.

Technical risk. High, concentrated in sustainment rather than correctness:

  • Abandonment. No release since 2018-10-08, no dependents, no visible maintainer activity. There will be no security patches, no PHP 8.x compatibility work, and no Redis 6/7 or Cluster/Sentinel validation.
  • Reliability semantics. Classic list-based queues using plain BRPOP provide at-most-once delivery: a worker that crashes mid-job loses the payload with no requeue. There appears to be no visibility timeout, no acknowledgement step, no dead-letter queue, no retry/backoff, and no delayed-job support. Verify whether BRPOPLPUSH-style reliable pop or a processing list is used — this is the single most important thing to confirm.
  • Observability. Expect no metrics, no structured job-failure events, and no introspection beyond LLEN. Operating this blind is a meaningful on-call cost.
  • Ecosystem drift. Symfony 2 conventions (annotation routing, services.yml bundle registration, PHP 5.x-era type hints) will resist any modernization and confuse engineers who have only seen Symfony 5/6 or Laravel.

Key questions.

  1. Is there a standalone, framework-agnostic core (rsqueue/rsqueue or similar) that carries the actual queue logic? If so, evaluate that instead — the bundle may be disposable.
  2. What are the declared PHP and Symfony constraints in composer.json, and does the code run at all on PHP 8.1+?
  3. Which Redis primitive is used for consumption — BRPOP, BRPOPLPUSH, or a Lua script? This determines whether the queue is at-most-once or at-least-once.
  4. Does it support multiple named queues, priorities, retries, or scheduled delivery, or is it a single flat list?
  5. Is the payload format PHP serialize() (unsafe across languages, brittle to class renames) or JSON?
  6. What is the actual business driver for considering this package — is there an existing Symfony 2 service it must interoperate with, or is this greenfield queueing where native options exist?

Integration Approach

Stack fit. Non-fit for Laravel. The correct comparison set is Laravel's built-in Redis queue driver, Symfony Messenger with a Redis transport, or a managed broker (SQS, Redis Streams consumer groups). Any of those delivers this package's functionality plus retries, delayed jobs, failure tables, Horizon-style observability, and an actively maintained security posture. The only scenario where this repository has residual value is a legacy Symfony 2 application already in production where it is the incumbent and rewriting is out of scope.

Migration path. Two options, both cheap:

  • Greenfield / Laravel: do not adopt. Implement a Laravel queue driver over Redis, or simply use the framework's Redis driver, and preserve the legacy key naming only if a co-existing consumer requires it. Effort: 1–3 engineer-days for a driver plus tests.
  • Legacy Symfony 2 co-existence: run the bundle as-is behind a network boundary, publish/consume via a shared Redis instance, and plan a strangler migration to Symfony Messenger or Laravel's queue as the surrounding services modernize.

Compatibility. Assume PHP 5.4–7.x and Symfony 2.3–2.8. Expect hard failures on PHP 8 (reserved-word and signature changes, each() removal, dynamic property deprecations) and on Symfony 4+ (bundle-less architecture, Configuration/Extension API changes, autowiring). Redis compatibility is the bright spot: list commands are stable, so the wire protocol will likely work against modern Redis, though Cluster mode requires key-slot awareness that a 2018 wrapper almost certainly lacks.

Sequencing. (1) Confirm the core-library question and the pop primitive — 1 day of source review, decides everything downstream. (2) Run a throwaway spike: boot the bundle on the oldest supported PHP container, push/consume one job, and kill a worker mid-job to observe data loss. (3) Produce a build-vs-adopt recommendation with the reliability findings. (4) If adopted for legacy reasons, immediately vendor the code into the repo, pin PHP, and add an ack/retry wrapper. (5) If greenfield, close the evaluation and route to the native framework driver.

Operational Impact

Maintenance. Effectively unmaintained. Plan to own a vendored fork from day one: pin the source, document the Redis key schema internally, and budget recurring effort for PHP runtime upgrades and Redis version drift. The absence of any dependents means no upstream bug reports to learn from and no community fixes to cherry-pick — every defect is yours alone.

Support. No vendor, no SLA, no active maintainer, 11 stars. Internal escalation stops at whoever read the source last. This is acceptable only for non-critical, loss-tolerant workloads; it is disqualifying for payments, provisioning, or anything with a customer-visible completion guarantee.

Scaling. Redis list operations are O(1) and fast, so raw throughput is fine and consumers scale horizontally by adding worker processes. Real constraints are elsewhere: there is no consumer-group coordination, so concurrency safety depends entirely on Redis's atomic pop; there is no delay/priority scheduling, so rate-limited or backoff-driven workflows must be built outside the queue; and a single Redis instance is a single point of failure unless Sentinel/Cluster is explicitly supported (likely not).

Failure modes. The list to watch: worker crash or deploy-time SIGKILL between pop and completion → permanently lost job with no requeue; Redis restart without AOF appendfsync tuned → in-flight and queued work lost; poison message → infinite retry loop with no DLQ escape hatch; producer burst → unbounded list growth, memory pressure, and OOM eviction if maxmemory-policy is not noeviction; silent consumer stall → no alerting signal because there is no heartbeat or lag metric. Each of these needs an externally built mitigation, which materially changes the true cost of "adopting a simple 11-star bundle."

Ramp-up. Conceptual ramp-up is trivial — a Redis list with blocking pops is an afternoon to understand. Practical ramp-up is worse than it looks: engineers must learn Symfony 2 bundle conventions (a skill with near-zero transferability in a Laravel shop), the PHP serialize() payload contract, and the undocumented operational assumptions of the original author. Realistic estimate: 1–2 days for a senior engineer to be productive in the source, plus a half-day of runbook and alerting work per failure mode above.

TPM recommendation. Do not integrate. The package is technically obsolete, architecturally incompatible with Laravel, and has no community or maintainer backing. Its only lasting value is as a compact reference for how a Redis list queue is wired — read it, then build or buy the maintained equivalent.

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.
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
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route