latidoflow/laravel
LatidoFlow for Laravel adds heartbeat and workflow monitoring to your app, making it easy to track scheduled tasks, queue workers, and service health. Lightweight config, Artisan commands, and simple status endpoints help you catch failures early.
Queue::before/Queue::failing hooks plus custom log correlation yourself. This package's run-UUID model, retry tracking, and deadline/missing_run expectations are the parts teams consistently underbuild. Adopt when the in-house version would be a side project, not a sprint.missing_run and queue-start/runtime deadlines convert "the worker silently died" into an alert. Directly informs whether you staff on-call for async pipelines or accept best-effort.expect_recurring_runs: false (new in v1.4.0) is a deliberate product statement: "this listener fires on irregular events, so silence is not a failure." Lets you onboard event-driven listeners without false-positive pages, which broadens where the package is viable.Consider it when:
missing_run expectations to apply selectively (the v1.4.0 expect_recurring_runs: false flag).Look elsewhere when:
CallQueuedListener broadly no longer works; if you cannot enumerate listener classes, you will get less coverage than the previous behavior implied, and might conclude (incorrectly) that you have blanket monitoring.Upgrade note for existing users (behavior change): v1.4.0 changes allowlisting semantics. If anyone previously relied on allowlisting the shared CallQueuedListener wrapper to opt all listeners in, that no longer implies coverage. Audit your configuration and explicitly enumerate intended listener classes before upgrading, or you will silently lose monitoring you believed you had. This is the single highest-risk item in the release and deserves a checklist item, not a changelog skim.
For executives (one paragraph): We have no reliable way to see whether background work — order confirmations, provisioning, notifications — actually ran. This package adds per-listener tracking for dispatch, retries, and failures, plus alerting when expected runs don't happen, on top of the Laravel queue we already run. It is a low-cost, self-hosted addition rather than a new vendor contract. The honest caveats: it is fail-open by design, it does not retain a replayable history, and it does not retroactively cover jobs already in flight when we turn it on. It makes us observable; it does not make us guaranteed. If we need provable delivery for financial flows, that remains a separate investment.
For engineering leadership: Test coverage is strong — 140 tests / 601 assertions across the full CI matrix, including lowest-supported dependencies and clean consumer fixtures, with database-queue tests covering web dispatch without a worker, precise listener allowlisting, and delayed-then-executed runs reusing the same run UUID. That last case is the one that usually breaks homemade correlation schemes. The v1.4.0 upgrade is small in code and meaningful in behavior: explicit listener configuration replaces the shared-wrapper shortcut, so it is a config audit, not a find-and-replace. Scope the rollout to the two or three listeners attached to revenue or contractual SLAs first; that is where missing_run and runtime deadlines pay for themselves.
For the team doing the work: Plan for one configuration pass (enumerate intended listener classes), one decision pass per listener (expect_recurring_runs true or false), and a deployment window where forward-only instrumentation is acceptable. Do not position this as the answer to "did the payment go through?" — position it as "we would have known within minutes if it hadn't."
How can I help you explore Laravel packages today?