kiora/health-check-bundle
A health check bundle for Symfony/PHP applications that exposes a monitoring endpoint and runs configurable checks to report service status, helping integrate with load balancers, uptime monitors, and container probes.
Architecture fit
-bundle suffix, the repository name, and the release contents (compiler-pass-era conventions, Symfony-idiomatic health check abstraction) confirm this remains a Symfony bundle, not a Laravel package. v1.1.0 adds no service provider, facade, or publishable config/health-check.php. The Laravel ergonomics gap is unchanged./ping (lightweight liveness) and /ready (Kubernetes readiness) are exactly the two endpoints a platform team would otherwise hand-roll. Health check groups plus multiple database connection support show the maintainer is designing for real deployments rather than a demo.Integration feasibility
/ping, /ready, groups) to target — you are aiming at a better-specified moving part, not a smaller one.AbstractHealthCheck") and #22 (PHPStan level 9, quality badges) are weak positive signals — factory methods on an abstract base class suggest check construction is at least partially centralized, and strict static analysis tends to correlate with defensible interfaces — but neither confirms PSR-only dependencies.Technical risk
@james2001, and the auto-generated "New Contributors" line is an artifact of that account being new to the repo — not evidence of a widening contributor base. A twelve-PR release from a single author is a burst of activity, not a cadence. One release is still one data point.Key questions for the maintainer / spike
/ping and /ready exist, and health check groups imply checks can be partitioned across them. Confirm in source how a check is assigned to a group.Stack fit
spatie/laravel-health or a small internal /healthz controller still wins on maintained dependency plus native ergonomics. The now-better-specified contract does not offset the glue burden./ping + /ready + groups + CI + level 9 static analysis is a meaningfully stronger proposition than v1.0.0, and it solves a tedious problem in the framework's own idiom.Migration path
acme/health-checks package under MIT, expose through your own Laravel provider and Symfony compiler pass. The post-#18 refactor makes this fork slightly easier to maintain than it would have been at v1.0.0.Compatibility
1.1.x exactly for the initial rollout. Given the volume of change in this single version, a ^ range would pull in a stabilization release you have not evaluated.Sequencing
Maintenance
^ ranges. The 12-PR, 2-endpoint, multi-feature jump from v1.0.0 to v1.1.0 is a scope-velocity signal: pinning protects you from stabilization churn.Support
Scaling
/ping / /ready split is the most operationally consequential change in this release. Routing cheap liveness to /ping and dependency probes to /ready lets you set aggressive liveness intervals and conservative readiness intervals — the correct configuration, and one this package now makes possible.Failure modes
/ping vs /ready separation is exactly the design lever that prevents readiness flaps from restarting healthy pods, provided you wire liveness to /ping and readiness to /ready, and provided check groups are partitioned correctly. If you point liveness at a deep-probing endpoint, the original highest-severity risk returns in full. This is now a configuration responsibility rather than an inherent package flaw — which means it must be documented and reviewed, not assumed.Ramp-up
Bottom line for the TPM: v1.1.0 is a substantial and genuinely de-risking release — CI, enforced static analysis, a security policy, and the liveness/readiness split move this from "unvalidated single-release project" to "actively maintained small project with credible engineering hygiene." It is still a single-maintainer, zero-dependent package with no third-party production validation, no confirmed timeouts, and no documented response schema. For Symfony or mixed estates, the recommendation flips from build to vendor, contingent on the spike confirming timeouts and schema. For Laravel-only estates, the recommendation does not change — build the thin internal endpoint, because you would own the glue either way and the glue is the larger artifact.
Change log for this revision: raised maturity rating; promoted /ping+/ready and groups from open question to resolved capability; downgraded cascading-restart risk from inherent to configuration-dependent; added scope-velocity risk; strengthened pinning guidance; adjusted maintainer effort estimate downward slightly.
How can I help you explore Laravel packages today?