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

Laravel Queue Monitor Nova Laravel Package

romanzipp/laravel-queue-monitor-nova

A Laravel Nova companion for romanzipp/Laravel-Queue-Monitor. It adds dashboard cards showing queue activity, job status, and failure metrics, letting teams monitor background jobs and spot problems directly from the Nova admin panel.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package is a thin presentation layer: it registers a Laravel Nova tool that surfaces records written by romanzipp/Laravel-Queue-Monitor (a table-per-job-event monitor with queued/started/finished/failed state and a separate failed-jobs table). It adds no queue infrastructure of its own — no listeners, no workers, no schema beyond what the base package migrates. Architecturally that is the right shape for this capability: observability UI should not sit in the job execution path. The catch is that it inherits a hard, two-level dependency chain — Nova (commercial, licensed per site) and queue-monitor (single-maintainer, low activity) — for what is ultimately a read-only admin screen.

Integration feasibility. Mechanically trivial: composer require, register the tool in NovaServiceProvider::tools(), ensure queue-monitor's migrations have run, and confirm jobs are being recorded. No service provider overrides, no middleware, no event wiring in application code. Effort is measured in hours, not days. The friction is entirely in version compatibility, not in the code.

Technical risk. This is where the evaluation turns negative, and the 3-star / 0-dependent / 0.175-score signals should be read as a genuine warning rather than noise:

  • Bus factor of one. A single maintainer, minimal recent activity, no downstream dependents to absorb breakage first. If Nova 6 ships and this tool is not updated, we are the ones patching a vendored fork.
  • Nova version coupling. Nova tools are pinned to Nova majors via nova composer constraints and a ToolServiceProvider contract that has changed across 4→5. A Nova upgrade is a forced re-validation of this package, not an independent decision.
  • Capability is shallow. The tool is essentially a handful of Nova Resources (list/detail for monitored and failed jobs), filters, and a metric or two. This is the single most important finding: the package is a convenience wrapper around maybe 300–600 lines of Nova Resource definitions. The build-vs-buy math is unusual because "build" is small and "buy" carries an abandonment tail.
  • Data exposure. Queue-monitor stores serialized job payloads and exception text. Those routinely contain PII, model snapshots, or credentials embedded in job arguments. Access must be constrained by Nova policies and, ideally, payload columns redacted. This is our responsibility, not the package's.

Key questions.

  1. Which Nova major and Laravel/PHP versions are we on today, and does the tool's constraint set actually admit them, or are we relying on --with-dependencies leniency?
  2. Is Nova already licensed and approved in this stack? If not, the real cost is the Nova license, and this package is a rounding error on that decision.
  3. Who owns the queue-monitor data model, retention window, and DB connection?
  4. Do job payloads in our queues contain PII, secrets, or regulated data that a Nova screen would expose to a broader audience than the queue workers?
  5. Are we willing to vendor/fork, or does the dependency need to be replaceable without a fork?

Integration Approach

Stack fit. Clean, conditional on Nova already being present. The tool targets the standard Laravel queue path — database/Redis/SQS drivers are irrelevant to it, since it reads monitor rows, not the queue itself. If the org runs Nova for other admin surfaces, this slots in with no architectural argument. If Nova is not present, this package must not be the reason to adopt Nova; that is a platform decision that dwarfs the package.

Migration path. Sequencing matters more than the install:

  1. Install and configure laravel-queue-monitor first, in staging. Verify job lifecycle rows are actually being written for our real queue drivers and job classes — some drivers and some dispatch paths behave differently, and a monitor that silently records nothing yields a Nova screen that silently shows nothing.
  2. Set the retention window and pruning schedule before enabling capture in production. Retrofitting pruning after the table has grown is a painful, locking operation.
  3. Stand up the Nova tool against staging data and validate access policies and payload visibility.
  4. Promote to production behind Nova authorization, not behind a feature flag.

Compatibility. Treat this as a matrix, not a checkbox: Nova major × queue-monitor major × Laravel major × PHP version. The package's own composer constraints are the first gate; the second is whether Nova's tool registration API still matches. Pin exact versions in composer.json and add this package to the upgrade-runbook checklist for any Nova bump.

Build-vs-buy recommendation. Run a two-day spike: register two Nova Resources against the queue-monitor tables with filters and one failed-jobs metric. If that spike lands cleanly — which the scope suggests it will — the in-house version removes the third-party dependency entirely while keeping the (still third-party, but far more load-bearing and better maintained) queue-monitor. Given 0 dependents and a single maintainer, I would default to this path and treat the package as reference implementation rather than a dependency.

Operational Impact

Maintenance. Low ongoing effort if versions are frozen; high episodic effort at every Nova or Laravel major. Single-maintainer upstream means we should assume we are the maintainers of last resort. Budget a fork-ready posture: vendor the package into the repo or mirror it, so a Nova upgrade is a local patch rather than a wait on upstream.

Support. Community-only, no SLA, no security disclosure process to speak of. Acceptable for an internal read-only admin screen; not acceptable if the tool were ever exposed to customers. The blast radius is genuinely small — it is a viewer, and removing it degrades visibility, not correctness.

Scaling. The bottleneck is queue-monitor's write path, not the Nova tool. One row per job event means a high-throughput queue (thousands of jobs/minute) generates serious write volume and table growth. Two mitigations to decide up front: route monitor writes to a separate DB connection to avoid contending with application writes, and enforce a short retention window (days, not weeks) with scheduled pruning. The Nova UI itself paginates fine; large tables with missing indexes on created_at/status will produce slow admin pages long before they produce an outage.

Failure modes.

  • Nova/tool version mismatch → tool fails to register or blank screen; caught in staging, not production.
  • Missing or unrun migrations → empty screens that look like "no jobs," masking a real monitoring gap. Alert on monitor row absence, not just on failures.
  • Unbounded table growth → disk pressure and slow queries on the primary DB; the most likely production incident here.
  • Payload over-exposure → Nova users see serialized job arguments they should not. Enforce policies and redaction at the resource level.
  • Silent capture loss after a queue driver change → dashboards look healthy while monitoring is blind.

Ramp-up. Near zero for engineers already fluent in Nova Resources; half a day for a Laravel developer new to Nova's tool registration. The real onboarding cost is institutional knowledge about retention policy, what payloads are safe to display, and who is expected to patch the fork when Nova moves — all of which should be written down at adoption time, because upstream will not be the one documenting it.

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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums