theviralab/resque-bundle
A Laravel bundle for running background jobs with Resque, the Redis-backed PHP queue library. It wires Resque workers and queues into your app so time-consuming tasks like emails, image processing, and report generation run asynchronously outside the request cycle.
Framing correction (material to the decision): the package is described as a Symfony 2 bundle, not a Laravel package. This is not a labelling nuance — it changes the build-vs-buy calculus entirely. A Symfony 2 bundle is a Kernel-registered artifact (Bundle subclass, DependencyInjection/*Extension, compiler passes, services.yml/XML wiring, Symfony EventDispatcher contracts). Laravel has no mechanism to load it; service providers, facades, the Config repository, and the QueueManager/connector model are unrelated abstractions. Architecture fit against a Laravel stack is effectively zero without an adapter rewrite.
Architecture fit (if target is legacy Symfony 2): plausible but thin. Resque is a Ruby job-queue library over Redis; the PHP ecosystem's participation is an API-compatible client that serialises {class, args} JSON payloads onto Redis lists. This bundle almost certainly wraps one of the php-resque forks in Symfony DI plumbing. That means the package's actual surface area — the part you would be buying — is configuration wiring and a service definition. The durable engineering value sits in the underlying PHP client and Redis, not in the bundle. Low lock-in, but correspondingly low value delivered.
Integration feasibility: technically installable (Composer, service-container registration), practically doubtful. The Symfony 2 constraint pins a PHP 5.x–7.x era dependency graph; the transitive php-resque fork is likely unmaintained; no CI, no published support matrix, zero dependents means no third party has validated the install path against any real matrix. Expect the first meaningful cost to be dependency archaeology, not integration.
Technical risk: high.
Key questions before any spike:
Stack fit: Poor, and irreparably so for Laravel. On Laravel, the native Redis queue driver plus Horizon covers the same Redis-list-backed worker model with supervision, retries, metrics, and a first-party UI. Adopting a Symfony 2 bundle to reach a Ruby queue is strictly more moving parts for strictly less capability.
Compatibility matrix to establish (not assume):
| Dimension | Expected constraint | Action |
|---|---|---|
| PHP | 5.x–7.x era pin | Blocks modern Laravel/Symfony outright |
| Symfony | 2.x only | EOL framework; security exception required |
| Redis | Older client library | Verify against current Redis versions |
| Resque (Ruby) | Reference impl version | Must match PHP client's payload contract |
| Laravel | Not supported | Adapter rewrite required |
Migration path — recommended: do not port the bundle. If Resque interoperability is genuinely mandatory, integrate the underlying PHP Resque client directly behind a domain-level JobDispatcher interface, so the queue transport is a swappable implementation detail rather than an ambient dependency. If interoperability is not mandatory, treat this as a greenfield queue decision and default to the native framework queue with Redis.
Sequencing (if proceeding against the recommendation):
Maintenance: Effectively self-maintained from day one. No upstream commits means every PHP upgrade, Redis upgrade, and security patch is your fork's problem. Budget a standing maintenance allocation, not an onboarding cost. The EOL Symfony 2 coupling will also surface in every compliance/security review, creating recurring organisational friction disproportionate to the package's value.
Support: No maintainer, no documentation, no issue history. On-call engineers will debug by reading Redis lists and Ruby process output. Knowledge will concentrate in whoever performed the integration — a single point of failure you should plan to mitigate by documentation and pairing, not hope to avoid.
Scaling: The scaling model is Resque's, not the bundle's: Redis as the queue substrate, N forked worker processes, resque-web (Ruby) as the only real dashboard. Scaling is operationally linear and manual — no autoscaling signal, no backpressure primitives, no native prioritisation beyond multiple named queues. Long-running PHP workers must be memory-bounded and recycled; forked workers require attention to connection handling on fork.
Failure modes to instrument from day one:
Ramp-up: Steep and unusual — engineers need Redis internals, Resque's fork/worker lifecycle, and enough Ruby to read the worker and web UI. With zero package documentation and zero community corpus, budget weeks rather than days, and expect the learning to be non-transferable to the rest of the stack.
TPM recommendation: Reject for a Laravel target on compatibility grounds. For a legacy Symfony 2 target, still reject on lifecycle risk — the correct move is to consume the underlying PHP Resque client directly behind an owned interface if interop is contractual, or to standardise on the framework's native queue if it is not. The package adds configuration sugar over an unmaintained transitive dependency while importing an EOL framework constraint; that trade is not defensible at 0 stars, 0 dependents, and 0 maintainer commitment.
How can I help you explore Laravel packages today?