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

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package is a non-invasive observability layer over Laravel's queue and event subsystem. It instruments queued event listeners at dispatch, execution, retry and failure, and correlates a single run via UUID across dispatch → intentional delay → later execution. That is a good architectural fit for Laravel applications that express asynchronous work as queued listeners; less so for applications that primarily dispatch jobs directly rather than through the listener pipeline. The fail-open transport keeps the package out of the critical path, which is the right default for a monitoring component.

What v1.4.0 actually changes.

  • Listener identity model. Monitoring now keys on the exact listener class rather than the shared CallQueuedListener wrapper. This is a semantic change to what gets monitored, not just a feature. The prior behavior over-collected (allowlisting the wrapper opted every listener in); the new behavior under-collects by default unless each intended listener is configured explicitly. Upgrading without rebuilding the allowlist will silently reduce coverage — the single largest technical risk in this release.
  • expect_recurring_runs. New opt-out (default true, backwards compatible) that suppresses periodic missing_run expectations for irregularly-triggered workloads while retaining queue-start and runtime deadlines. This is a noise-reduction control, not a correctness change, and is the right shape: deadlines remain enforced where they are meaningful.
  • Correlation guarantees. Validation covers web dispatch without a worker, precise listener allowlisting, and intentional delay followed by later execution under the same run UUID. Run-identity stability across delay/retry is the property that makes the rest of the telemetry trustworthy.

Technical risk.

  • Silent coverage regression on upgrade (allowlist semantics) — highest likelihood, moderate severity.
  • Fail-open without durable replay — telemetry is lost during collector outages with no recovery path; "no data" becomes indistinguishable from "no traffic."
  • No backfill of existing queued jobs — coverage begins at deploy; in-flight work is invisible and initial dashboards will show gaps that look like failures.
  • Payment workload not verified end-to-end — highest severity, because deadline and missing-run detection is precisely what payment queues depend on, and it is the one scenario explicitly untested.
  • Forward-looking compatibility claims — PHP 8.5 and Laravel 13 are pre-GA targets; treat those matrix jobs as intent, not a guarantee, and re-confirm at GA.

Key questions.

  1. Is the allowlist change documented as a behavioral/breaking change with an upgrade guide, and is there a linter, discovery mode, or startup warning that surfaces listeners that are no longer monitored?
  2. What is the transport's local buffering/sampling behavior under fail-open — is there an opt-in durable sink (e.g., Redis stream) for critical queues?
  3. Does instrumentation add measurable latency to the dispatch path, and how does it behave under Octane / long-running workers?
  4. What are the retention and cardinality policies for run records on high-volume queues?
  5. Is missing_run evaluation idempotent and safe under multi-node schedulers?
  6. For in-flight pre-deploy jobs: are they invisible, or visible-but-unmonitored?

Integration Approach

Stack fit. Targets Laravel 12 on PHP 8.2+ and Laravel 13 on PHP 8.5, with database-queue coverage validated. Confirm behavior on the drivers you actually run (Redis, SQS) and on Horizon before committing.

Migration path.

  1. Inventory every queued event listener class in the codebase and classify: monitor, explicitly exclude, or ignore.
  2. Author the explicit allowlist; add a CI assertion that new ShouldQueue listeners are either allowlisted or deliberately excluded, so the list cannot silently rot.
  3. Deploy with expect_recurring_runs at its default, then set false for queues driven by irregular events once you have observed their arrival pattern.
  4. Verify in staging that a run UUID appears at dispatch and resolves at completion across three paths: immediate, intentionally delayed, and retried-then-succeeded.
  5. Roll out to non-critical services first; leave payment and financial queues for last.

Compatibility. The change is configuration-additive — no application code changes are required to upgrade, which is also the trap: the upgrade succeeds while effective coverage drops. Pin the version and re-run the lowest-supported-dependency combination if you are on the floor of the matrix.

Sequencing. Use a two-phase cutover: ship the explicit allowlist while the legacy wrapper entry is still present, confirm no double-counting or gaps, then remove the wrapper entry. Because there is no backfill, deploy at low queue depth or accept and annotate the initial coverage gap; consider suppressing missing_run for the first window so pre-deploy runs do not generate an alert storm on day one.

Operational Impact

Maintenance. Configuration surface is small, but the allowlist becomes a manually maintained artifact owned by someone. Without the CI check above, listener drift is the most likely long-term failure. Release engineering looks disciplined: 140 tests / 601 assertions, five CI matrix jobs including lowest-supported dependencies and clean consumer fixtures, and an explicit statement of what was not verified.

Support. Fail-open makes "no data" ambiguous. The runbook must distinguish collector outage from genuine absence of traffic, and must state plainly that a lost telemetry window cannot be replayed. The honest non-verification of hosted payment workloads should be carried into the support notes rather than buried in release history.

Scaling. Cost scales with run cardinality — one record per dispatch and per execution, correlated by UUID. High-fan-out listener patterns will dominate. Define retention and, if needed, sampling per queue tier before volume grows. Fail-open caps the blast radius on application throughput, but the per-dispatch and per-execution hook cost should be measured on your hottest queue.

Failure modes.

  • Silent under-monitoring after upgrade due to the allowlist semantics change.
  • Telemetry loss during collector outage with no durable replay.
  • False missing_run alerts if expect_recurring_runs is left true on irregular workloads.
  • Unmonitored pre-existing and in-flight jobs at rollout.
  • Unvalidated behavior on hosted payment workloads — the highest-consequence gap.
  • Compatibility drift if Laravel 13 / PHP 8.5 expectations move before GA.

Ramp-up. Low for configuration, moderate for the listener inventory and alert tuning. Budget roughly one sprint for a mid-size application to inventory listeners, validate in staging, tune missing_run expectations, and write the outage runbook. The work needs someone comfortable with Laravel queue internals (CallQueuedListener, worker lifecycle) to confirm coverage is real rather than assumed.

Recommendation. Adopt for non-critical queues now — the release materially improves signal quality through precise listener attribution and deadline control. Gate payment and other deadline-critical workloads on a documented end-to-end verification and a stated mitigation for the no-durable-replay gap; without those, the monitoring will be least reliable exactly where missed runs cost the most.

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.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin