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

imtigger/laravel-job-status

Track the status of queued Laravel jobs. Add the JobStatus trait to a job, then query its state (queued, processing, completed, failed), progress, messages, and errors through a simple API. Statuses persist in cache or database, so you can show job progress in your UI and debug failures easily.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for job observability. Release 1.2.0 closes the two gaps that most often forced teams to build their own job-status layer: (a) jobs that exhaust retries were not reliably landing in a terminal failed state, and (b) monitoring broke whenever a job class was renamed or removed. With those fixed plus an extension hook, this package now covers the baseline "is my async work healthy?" need without a custom build.
  • Feature vs. platform investment. Adopting this defers or removes an internal "job monitoring dashboard" initiative from the roadmap, freeing capacity for customer-facing work. The status updater is the only piece we would otherwise have had to design ourselves.
  • Incident response and support tooling. Accurate terminal states mean on-call and support see the truth about a stuck or dead job instead of a row frozen in processing. That directly reduces triage time and mis-escalations during incidents.
  • Deploy and refactor risk. The fail-safe for job classes that no longer exist means renaming or deleting a job won't crash the status view mid-release. This lowers the cost of aggressive refactoring and makes "safe to ship on a Friday" a defensible statement for queue code.
  • Extensibility as a lock-in hedge. JobStatusUpdater being extendable lets us encode domain-specific states (per-tenant, per-workflow, multi-step pipelines) without forking. That keeps the buy option viable as requirements grow and avoids a one-way door.
  • Roadmap sequencing. Because retry-exhaustion and stale-class handling were the two correctness blockers, the remaining work is presentation and alerting — cheap, incremental, and shippable without a platform bet.

When to Consider This Package

Consider adoption when:

  • The product runs meaningful async work in Laravel (billing, exports, notifications, imports) and there is no per-job visibility beyond queue depth or Horizon's queue-level view.
  • You need business-level job semantics — "did this customer's export succeed?" — which generic APM and Horizon do not model.
  • You want to surface job progress to end users or an internal ops console without standing up new infrastructure.
  • You have (or expect) custom status requirements that the extension point can absorb instead of a fork.
  • You can pin a version and own a thin internal wrapper around the package's API.

Look elsewhere when:

  • You need full tracing, spans, or performance profiling — that is Sentry/OpenTelemetry/Horizon/Telescope territory, and this package is not a substitute.
  • You require vendor support, contractual SLAs, or a compliance-grade audit trail with guaranteed retention.
  • Queues are non-Laravel, cross-language, or span multiple runtimes.
  • Volume is high enough that a per-job status write is a database cost problem; you would need sampling or aggregation this does not appear to provide.
  • The team is unwilling to absorb single-maintainer / small-community risk, which is not addressed by these release notes.

How to Pitch It (Stakeholders)

For executives (one paragraph): A meaningful share of our product work happens asynchronously, and today we cannot reliably answer "did that job finish, and did it fail for good?" This release fixes the two defects that made job-status tooling untrustworthy — jobs that exhausted retries could sit in a non-terminal state, and monitoring broke whenever a job class was renamed or removed — and adds an extension point so we can adapt it to our domain rather than maintaining a fork. The practical effect is faster incident triage, fewer false escalations to support, and a safe path through queue-code refactors. Recommendation: pilot on one high-value job pipeline, pin the version, and keep the option to buy rather than build.

For engineering (summary):

  • JobStatusUpdater is now extendable — we can implement domain-specific status transitions behind our own interface rather than patching the package.
  • Jobs that hit max retries are now marked failed, so dashboards and alerts reflect reality.
  • Missing/removed job classes are handled fail-safe, so deploys that rename jobs won't take down the status surface.
  • Integration cost is low; the durable commitment is a small adapter layer so our code depends on our interface, not the package's.
  • Residual risk: small maintainer base and no published telemetry or benchmarks. Mitigate by pinning, wrapping, and piloting before broad rollout.

Caveat on this assessment: no usage data, version history, or prior evaluation was available for this review — the above is derived from the 1.2.0 release notes and the package's evident scope. Revisit after a pilot produces failure-rate and integration-effort numbers.

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