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

pbmedia/laravel-api-health

pbmedia/laravel-api-health lets you monitor Laravel API endpoints with configurable health checks, scheduled runs, and notifications when an endpoint is down or unhealthy.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package targets a narrow, well-understood concern: exposing application/service health and dispatching notifications when a check fails. Architecturally it slots into the Laravel service-container and scheduler model — config file for check definitions, an artisan/scheduled invocation, and Laravel's notification system for alerting (mail, Slack, etc.). That is a low-coupling footprint: it does not own data models, does not require schema changes, and does not sit in the request path for normal traffic. For a TPM, that means the blast radius of adoption or removal is small and reversible.

The catch is that "health checking" is now a commoditized capability. Laravel ships a native health endpoint (/up) since 11.x, and spatie/laravel-health covers the same ground with active maintenance, a broader check library, and history/status-page features. Adopting this package means adopting a bespoke implementation of a problem the ecosystem has since solved twice over.

Integration feasibility. Mechanically easy: Composer require, publish config, register a schedule entry, configure notification routes. Realistic effort is under a day for a first working check against a third-party API plus one internal dependency. There is no infrastructure prerequisite beyond a scheduler running (schedule:run via cron or a queue worker), which most Laravel deployments already have. No dependents on Packagist suggests limited field validation — we would be early adopters, which raises the cost of discovering edge cases but does not itself block a spike.

Technical risk. The release of 5.4.0 is the first signal of life since 2022, and it is a single, narrow commit: PHP 8.2 support. That is worth reading carefully rather than optimistically.

  • What 5.4.0 does: widens the PHP constraint to include 8.2. Useful if we are on 8.1/8.2, and it is the first evidence in ~3 years that anyone can ship a release. It does not touch the illuminate/* constraints, so Laravel 10/11/12 compatibility remains an open, unverified question — the single biggest blocker is unchanged.
  • What 5.4.0 does not do: no mention of PHP 8.3/8.4, no Laravel version work, no dependency bumps, no security fixes, no new checks, no maintainer signal. Three years of accumulated framework drift is not closed by one release.
  • Archive status needs re-verification. The prior assessment recorded the repo as archived since ~2022. A release against an archived repo is anomalous; either the archive was lifted, the release predates the archive, or the note was inaccurate. We must re-check the repository state and the Packagist metadata before drawing conclusions — a single PHP 8.2 commit is not a maintenance revival, but it is a reason to look again rather than to assume.
  • Zero dependents still holds. Effectively no community canary population. Bugs we hit, we own.
  • Bus factor remains the dominant concern. One narrow release after a multi-year gap is a data point, not a commitment. Nothing here indicates a support channel, triage process, or CVE response has been established.
  • Behavioral risk is low, organizational risk is high. The checks themselves are simple; the danger is a silent failure in the alerting path — the worst kind of monitoring bug, because you believe you are covered when you are not.

Net: 5.4.0 marginally improves the PHP-side compatibility story and does not move the strategic conclusion. It changes a spike from "probably won't install" to "might install on 8.2" — which is exactly why we should run the spike rather than argue about it.

Key questions.

  1. Is the repository still archived, and if not, who unarchived it and with what commitment? Check the repo state and Packagist metadata before anything else.
  2. Is this for greenfield adoption, or are we documenting an existing dependency we need to exit? The answer changes the recommendation completely.
  3. Does 5.4.0 actually install on our target Laravel version, or does the illuminate/* constraint still block it? Has anyone tested on PHP 8.2 specifically?
  4. What is the cost of the failure mode "monitoring is silently broken"? If high, a thinly-maintained monitor is disqualifying on its own.
  5. Do we need history, status pages, or multi-region probing — capabilities this package does not offer and spatie/laravel-health or a hosted provider does?
  6. Who owns the fork if we go that route, and what is the trigger to stop maintaining it?
  7. Does our platform/security policy permit thinly-maintained dependencies in production, and is there an exception process?

Integration Approach

Stack fit. Good conceptual fit, slightly improved lifecycle fit as of 5.4.0. It assumes a standard Laravel app with scheduler and notification infrastructure — which we have. PHP 8.2 is now claimed as supported, so confirm that against our runtime. The Laravel constraint remains the open question: it was built for the Laravel 8/9 era, and 5.4.0 does nothing visible to widen illuminate/*. Treat "does it install cleanly on our Laravel version" as a gating experiment, not an assumption.

Migration path. Two viable paths, and I would sequence them as one:

  1. If already in use: keep it running short-term behind a feature flag, but freeze it — no new checks added — and schedule migration to spatie/laravel-health or Laravel's native health route plus an uptime/APM provider. Migration is mostly config translation: check definitions map closely, and notification routing is Laravel-native in both, so the work is rewriting check classes and re-validating alert delivery. 5.4.0 does not change this trajectory; it may buy a little runway on PHP 8.2 but does not justify new investment.
  2. If evaluating for new use: still lean toward not adopting. Run a one-to-two day spike against spatie/laravel-health and the native /up endpoint instead, and compare on check coverage, notification channels, and history. Include this package in the spike only to the extent that 5.4.0 makes it installable — treat it as a control, not a candidate. The high opportunity score (0.84) reads to me as opportunity to replace or fork, not opportunity to adopt.

Compatibility. Verify explicitly, in this order: PHP 8.2 install (now nominally supported by 5.4.0 — confirm for real), illuminate/* constraint against our Laravel version, notification channel support (Slack/webhook payload formats have changed), and Http client facade usage. Any failure on the Laravel constraint is a fork-or-abandon decision, not a workaround. Budget a fork as a real option: republish under our namespace with a widened constraint set, pin it internally, and accept ownership — but only if the capability is genuinely differentiated, which I doubt, and only with a named owner and exit trigger.

Sequencing.

  • Week 1: re-verify archive and maintenance state; then compatibility spike in a throwaway branch on PHP 8.2 — confirm install, one internal check, one third-party HTTP check, one delivered alert. Decision gate.
  • Week 2: side-by-side comparison against spatie/laravel-health on the same two checks. Decision gate.
  • Week 3–4: if migrating, implement replacement checks, run both systems in parallel for a full alert cycle, then decommission the old one.
  • Ongoing: add the package (or its absence) to the dependency-review register with an explicit owner and review date, re-confirmed against the repository state observed in Week 1.

Operational Impact

Maintenance. Effectively unmaintained upstream, with one narrow exception: 5.4.0 adds PHP 8.2 support. That is a single compatibility touch, not a maintenance regime — no dependency bumps, no Laravel work, no security posture. The practical assumption should still be that maintenance burden transfers to us: PHP/Laravel upgrades, dependency bumps, and behavioral drift in notification channels. That is a recurring, unbudgeted tax for a capability we can get maintained for free elsewhere.

Support. No upstream support channel, no issue triage, no CVE response established. 5.4.0 does not change this. Internal support means reading the source. For a monitoring component, that is acceptable only if the failure mode is loud; the risk here is that it fails quietly.

Scaling. Checks are scheduled jobs, so scaling is a scheduler/queue concern rather than a package concern. Low volume is trivial; a large check matrix on a single scheduler node introduces head-of-line blocking and duplicate execution if we ever run multiple schedulers without a lock. The package itself offers no distributed coordination, history retention, or aggregation — acceptable at small scale, insufficient if we later want a status page or SLA reporting. 5.4.0 does not add any of this.

Failure modes. Enumerate them explicitly before committing: (a) scheduler not running → no checks, no alerts, false confidence; (b) notification channel credential rotation → alerts silently dropped; (c) a Laravel upgrade breaking an internal API the package calls → check crashes and may be swallowed by the scheduler; (d) the package's own exception handling masking a failure as a pass; (e) new — a partial compatibility release creating a false sense of active maintenance, deferring the decision another 12 months. (a) and (b) remain the dangerous ones because they are indistinguishable from "everything is healthy," and (e) is the organizational equivalent. Mitigate with an external dead-man's-switch (a hosted uptime monitor pinging our health endpoint), which we should have regardless of which package we choose — and which largely obviates the package.

Ramp-up. Very low for any Laravel-comfortable engineer: config file plus a scheduled command, maybe half a day to first value. 5.4.0 does not change this. The ramp-up cost is not learning the package, it is learning that we now own it. Factor in the decision and comparison effort above; the true cost of this package is the migration off it that we will inevitably schedule.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource