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

Queue Manager Bundle Laravel Package

mcfedr/queue-manager-bundle

A Symfony bundle for managing queue jobs, giving you a web interface and commands to inspect, retry, and delete failed or pending messages across your queues.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — the headline finding is a framework mismatch. mcfedr/queue-manager-bundle is a Symfony bundle, not a Laravel package. It integrates through Symfony's Kernel/bundle registration, the Symfony DI container, a Configuration tree, Twig templates, and controllers routed via Symfony's routing/HTTP kernel. Laravel's queue model is a different abstraction entirely — Illuminate\Queue drivers (database, Redis, SQS, Beanstalkd) with its own payload envelope, failed_jobs table, and queue:retry/queue:forget tooling. Those two worlds do not share serialization, job envelopes, or container semantics. Score 0.95 and 14.65 opportunity, 10 stars, and 0 dependents all point the same way: this is a maintained-but-niche artifact with no community validation in either ecosystem.

Integration feasibility — low as-is, moderate only as a sidecar. There is no drop-in path. composer require into a Laravel app is technically possible but practically a dead end: Laravel ships selected Symfony components (console, http-foundation, routing) but not symfony/framework-bundle, and standing up a second Symfony kernel and container inside a Laravel process is not a supported configuration. The realistic options are (a) run the bundle as a small standalone Symfony service in front of the same broker, (b) port the UI concept onto Laravel's failed_jobs/Horizon data, or (c) decline and use Horizon + purpose-built retry tooling. Only (a) preserves the package as-shipped, and (a) requires that both runtimes agree on the wire format of a job — which they will not, out of the box.

Technical risk — high if adopted, and the risk is concentrated in security. The value proposition of a queue manager UI is that operators can inspect payloads and requeue or delete jobs. That means an admin surface that renders arbitrary job payloads (potentially PII, credentials, or tokens embedded by producers) and exposes destructive operations. Before any commitment I would insist on verified answers about authentication, authorization granularity, and audit logging — do not assume they exist. Secondary risks: single-maintainer bus factor (Fred Cox), low test/adoption signal, and behavior drift if the underlying queue-manager abstraction lags the broker versions we run.

Key questions the team must answer before spending engineering time:

  1. What is the actual unmet need — observability of failing jobs, or operator intervention (requeue/delete)? If it is observability, Horizon/Telescope already cover it and this package is the wrong tool.
  2. Does any part of the estate already run Symfony, and is the team staffed to own a second runtime?
  3. Which broker is the source of truth, and can we express jobs in a format both a Symfony consumer and a Laravel worker understand without a custom adapter?
  4. What payload sensitivity classification applies, and what does the bundle's auth/RBAC story actually look like in code (not in the README)?
  5. Is the 2024-09-25 release a maintenance heartbeat or a one-off? What is the maintainer's stated support posture?
  6. Are we willing to own a fork? With 0 dependents, we would be the largest consumer of this code by default.

Integration Approach

Stack fit — poor for a Laravel-primary stack, adequate for a polyglot PHP stack. If the organization is Laravel-only, this package is a category error and the assessment should end at the decision gate. If there is a legitimate Symfony footprint, the bundle fits cleanly into a Symfony 5/6/7 app with an existing framework-bundle and Twig setup. The queue-manager abstraction underneath is broker-agnostic (AMQP, Doctrine, Redis-style adapters), which is architecturally reasonable but orthogonal to Laravel's drivers.

Migration path — three viable routes, in order of preference:

  1. Decline and build native (recommended default). Use Laravel Horizon for Redis-backed visibility and implement a thin internal admin screen over failed_jobs for retry/forget with proper policy gates and audit columns. Effort is small, dependency risk is zero, and the security surface is one we control.
  2. Symfony sidecar. Deploy a minimal Symfony app containing only this bundle plus a broker adapter, pointed at the same Redis/AMQP broker as the Laravel workers. This works only if we standardize the job envelope ourselves — realistically a custom serializer shared by both sides. Cost: a second deployable, a second CI pipeline, a second set of runtime patches, and a hard cross-team dependency on envelope stability.
  3. Port the concept, not the code. Treat the bundle as a reference implementation for UI ergonomics (queue listing, job inspection, requeue semantics) and reimplement against Laravel primitives. Preserves the useful ideas, discards the integration tax.

Compatibility — verify explicitly, do not infer. Confirm the bundle's supported Symfony and PHP constraint ranges against our PHP version, and confirm the broker adapter versions. Laravel's shipped Symfony components will not satisfy a framework-bundle requirement, so option 1 in the migration list is the only one that avoids a mixed-runtime contract. If we go the sidecar route, pin the bundle and the underlying queue-manager library tightly — this dependency is not one we want floating.

Sequencing:

  • Week 1 — Discovery spike, timeboxed. One engineer, no production code. Answer the key questions above, specifically: what the UI actually does, what auth it ships with, and whether an envelope contract between Laravel producers and a Symfony consumer is achievable without a fork.
  • Week 1 end — Decision gate. Written recommendation: adopt sidecar / port concept / decline. Explicit go/no-go with the security finding attached.
  • Sprints 2–3 (if sidecar): envelope contract, sidecar scaffolding, network placement, auth in front, staging validation with synthetic failing jobs.
  • Sprints 2–3 (if port): failed-job admin screen, policy gates, audit logging, requeue/delete with idempotency guards.
  • Sprint 4 either way: runbook, on-call documentation, and a documented rollback.

Do not begin implementation before the decision gate closes. The most expensive outcome here is a half-integrated second runtime nobody owns.

Operational Impact

Maintenance — the dominant cost, and it is not the code, it is the runtime. As a sidecar, this package forces a standing Symfony application into the estate: its own dependency updates, its own security patching cadence, its own PHP version upgrade path, and its own observability wiring. With a single maintainer and 10 stars, upstream fixes are not something we can schedule around — assume we patch locally. Budget roughly 10–15% of one engineer per quarter for the sidecar, plus the cost of the envelope contract, which becomes a de facto internal API between two teams.

Support — no vendor, no SLA, no community depth. Zero dependents means zero field reports; when something breaks we are the first to see it. The 2024-09-25 release is recent enough to suggest the maintainer is active, but recency is not a support commitment. Escalation path is "open an issue and wait," which is unacceptable for a tool on the incident-response path. Mitigation: fork to an internal namespace on day one, with a named owner.

Scaling — mostly a function of the broker, with one caveat. The manager is a read/control-plane surface, not a data-plane component, so it does not sit in the throughput path and should not affect worker scaling. The caveat is queue enumeration: listing and counting large Redis or AMQP queues can be expensive (SCAN-class operations, queue depth queries) and the UI may degrade or add broker load at high cardinality. Test against realistic queue counts and depths, not a laptop. Treat the manager as a single-instance internal tool behind auth; do not scale it horizontally to "fix" slowness.

Failure modes — enumerate these in the runbook:

  • Destructive operator error. Requeue or delete on a live queue racing an active worker → duplicate processing or silent job loss. Requires idempotent consumers and, ideally, a soft-delete or audit trail. This is the highest-severity failure and the hardest to reverse.
  • Payload exposure. Job payloads rendered in a UI to under-authorized viewers. PII/secret leakage into browser caches, logs, or screenshots.
  • Envelope drift. A producer-side schema change breaks the manager's deserialization; the tool silently shows nothing or errors while jobs are actually failing. Alert on the manager's own error rate.
  • Broker credential scope. The manager needs broad queue access to be useful — that credential is a high-value target. Isolate it, restrict it to admin networks.
  • Abandonment. Maintainer goes quiet, PHP/Symfony moves on, and we are pinned. Fork-on-adopt removes the surprise.

Ramp-up — modest but non-zero. Laravel developers will read the Twig/controller layer without much friction, but owning a Symfony kernel, bundle config, and DI conventions is a distinct skillset. Plan for a day of onboarding plus pairing on the first incident. The deeper ramp-up cost is conceptual: the team must hold two job models in their heads, and that confusion is exactly what produces duplicate-processing incidents.

TPM recommendation: the score (0.95) and opportunity (14.65) read as "maintained, interesting, unvalidated." Given the framework mismatch and the security surface of a job-payload admin UI, I would authorize a one-week discovery spike at most, with a strong prior toward the native-port option. Adopt the sidecar only if the organization already operates Symfony, or if the discovery spike uncovers a genuine multi-broker management need that Horizon and failed_jobs cannot serve.

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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core