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.
Architecture fit: Release 1.2.0 strengthens fit for Laravel queue-based systems by improving job lifecycle observability: retry exhaustion is reflected as failed, missing job classes are handled fail-safe, and JobStatusUpdater is extensible. This reduces the need to fork the package for custom status behavior.
Integration feasibility: Likely straightforward for a Laravel/PHP application already using queues and job status tracking. The main integration work is validating the extension point for JobStatusUpdater, confirming status semantics for max-retry failures, and testing the missing-class fail-safe in staging.
Technical risk: Moderate until compatibility and behavior are verified. The max-retry failure behavior is a semantic change that may affect dashboards, alerts, or workflows that previously expected retries to remain in a non-failed state. Extensibility of JobStatusUpdater may require service-container binding or subclassing knowledge. Release notes do not state supported Laravel/PHP versions, queue drivers, or backward-compatibility guarantees.
Key questions: Which Laravel/PHP versions and queue drivers are supported? What is the stable contract for extending JobStatusUpdater? Does max-retry failure update status before, during, or after the final failed attempt? Does the missing-class fail-safe log, alert, or silently mark failed? Are config or migration changes required for 1.2.0?
Stack fit: Best suited to Laravel applications using database/Redis/SQS-style queues where job status is tracked for operations, support, or product visibility. It fits teams that want retry-exhaustion and deleted-job-class cases reflected consistently without maintaining a custom fork.
Migration path: Treat 1.2.0 as a minor-version adoption from no prior assessment. Install in a non-production environment, publish/verify any package config, and exercise real queue jobs. Validate whether existing status consumers need mapping changes for max-retry failures.
Compatibility: Confirm PHP/Laravel version constraints, queue driver behavior, and whether custom JobStatusUpdater implementations remain compatible. Pay special attention to deployments where job classes are renamed or removed; the new fail-safe should be verified against rollback and blue/green deployment scenarios.
Sequencing: 1) Inventory queue jobs and downstream status consumers. 2) Install 1.2.0 in staging. 3) Configure or subclass JobStatusUpdater only if needed. 4) Simulate max-retry exhaustion, deleted job classes, and worker restarts. 5) Validate dashboards/alerts. 6) Run a limited production rollout with monitoring on failed-status volume.
Maintenance: The JobStatusUpdater extension point should reduce custom-fork maintenance. Keep contract tests around custom updater behavior and monitor package release notes for semantic changes to status transitions.
Support: Laravel-experienced teams should ramp quickly. Support and operations teams need clear definitions for retry exhaustion, failed status, and missing-class fail-safe behavior so alerts are actionable and not noisy.
Scaling: Status updates add write pressure per job attempt; assess database write volume and indexing at high queue throughput. If the package writes synchronously within job lifecycle, load-test under peak retry and failure conditions.
Failure modes: Watch for updater exceptions affecting job processing, status drift between queue backend and package state, max-retry status races, and missing-class fail-safe masking deployment mistakes. Ensure logs/alerts distinguish retry exhaustion from application failures and from removed job classes.
Ramp-up: Low-to-moderate for a Laravel team. Provide a short runbook covering custom updater setup, expected status transitions, max-retry behavior, missing-class handling, and rollback steps if 1.2.0 changes dashboard semantics.
How can I help you explore Laravel packages today?