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 Job Status Laravel Package

twigger/laravel-job-status

Track Laravel queue jobs with persistent status records, progress updates, and error details. twigger/laravel-job-status helps you monitor what’s queued, running, completed, or failed, making background job visibility and debugging easier.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Whether to expose long-running work in the UI at all. Most of the highest-friction moments in a B2B product are asynchronous: CSV imports, bulk exports, report/PDF generation, AI enrichment, media transcoding, billing runs. This package makes per-job status a cheap, first-class object (status, progress percentage, human-readable message, output log) that the frontend can poll or subscribe to. That turns "spin a spinner and hope" into a defensible product decision rather than a nice-to-have.
  • Feature-level build vs. buy on the status layer. The capability here is small and mostly plumbing: a JobStatus record keyed to a dispatched job, a trait on the job to mark start/progress/success/failure, and a broadcast event the UI listens to. The real decision is not "can we build this" (yes, in a few hundred lines) but "do we want to own a job-status model, migration, retention policy, and broadcast channel?" This package is a credible way to not spend a sprint on that.
  • UX policy for asynchronous flows. Progress bars, "we'll email you when it's done," retry-from-failure, and duplicate-submission prevention all depend on having a durable status record. Adoption forces a concrete answer to "what does a user see at 40%? At failure?" — good roadmap forcing function.
  • Support and ops triage. A persisted status row with an output log shortens the loop from "customer says export is broken" to "job 8f2c failed at row 12,000 with this exception." That has a measurable ticket-deflection value you can put in a roadmap rationale.
  • Roadmap sequencing for an "activity" surface. Once job statuses are persisted, a job history / activity feed becomes incremental rather than a new subsystem — useful if a customer-facing "your recent activity" page or admin job dashboard is anywhere on the roadmap.

When to Consider This Package

Consider it when:

  • You have user-initiated jobs whose duration is long enough to be perceptible (rule of thumb: over ~5–10 seconds), and the user is waiting on or depending on the outcome.
  • You already run Laravel queues and want per-job, user-scoped status — not cluster-level queue health. Horizon and Pulse answer "is the queue healthy?"; this answers "is this user's import done?"
  • Your UI is Livewire/JS and can consume broadcast events or poll a lightweight endpoint; the package's value is largely in the broadcast plumbing.
  • You want a thin, MIT-licensed, low-blast-radius dependency to validate a feature before committing to a bespoke implementation.

Look elsewhere or build in-house when:

  • Maturity risk is unacceptable. 20 stars, 0 dependents, last release July 2023 — this is a single-maintainer package that predates recent Laravel majors. Treat it as a spike candidate, not a load-bearing dependency. Budget a one-day compatibility proof on your current Laravel version, and assume you may vendor or fork it.
  • Native primitives already cover you. Laravel's job batching gives you progress, processed/failed counts, and completion callbacks without an extra model — for a "run 200 jobs, tell me when done" case, that is likely sufficient and dependency-free.
  • You need durable audit/compliance semantics. Status rows are operational telemetry, not an audit log; retention, PII in the output field, and cross-tenant scoping are on you.
  • Scale or multi-queue orchestration. High job volume, cross-service jobs, or complex DAGs will outgrow a single status table quickly.
  • You need fine-grained, step-level workflow state (multi-stage pipelines with resumability). That is a workflow engine problem, not a progress-bar problem.

How to Pitch It (Stakeholders)

To executives: Users abandon or double-submit when they cannot tell whether something is working. This is a small, permissively licensed library that lets us show real progress and outcomes for background work — imports, exports, AI generation — instead of an indefinite spinner. The strategic value is not the library; it is that it lets us validate a user-facing "job status" experience in days rather than committing a sprint to plumbing, and it should reduce "did it work?" support contacts. Cost is low, but so is community validation (small project, no recent release, one maintainer), so I recommend we time-box an evaluation rather than standardize on it.

To engineering: The package gives us a JobStatus record tied to a dispatched job, a trait to mark start/progress/success/failure with a message and output, and a broadcast event the frontend can listen to. The surface area is modest, which cuts both ways: fast to adopt, but we should assume we may need to fork or replace it — so integrate behind a narrow internal interface (our own JobStatusRepository / status DTO) so the dependency is swappable. Please evaluate three things in a one-day spike: compatibility with our Laravel version, behavior when a worker is killed or a job times out, and whether a status table at our job volume needs pruning from day one.

Recommendation: Approve a time-boxed spike on one visible feature (largest-volume async flow, ideally one with existing support complaints), instrument it with a success metric — duplicate submissions and "did it complete?" tickets — and make the build-vs-adopt call after we see it working, with a default assumption that the status layer is ours to own long-term.

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.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log