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

Healthcheck Bundle Laravel Package

xrow/healthcheck-bundle

A Symfony bundle that adds health check endpoints to your application so load balancers and uptime monitors can verify that services such as the database, cache, and filesystem are responding correctly.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Framework mismatch is the headline issue. Despite the package description referencing "websites," xrow/healthcheck-bundle is a Symfony bundle built for Ibexa DXP (formerly eZ Platform), not a Laravel package. Laravel's service container derives from Symfony components, but Laravel does not consume Symfony Bundles — bundles require a Symfony Kernel, the Bundle base class registration in config/bundles.php, and Ibexa's own dependency injection conventions. Dropping this into a Laravel application is not supported and would require a compatibility shim (a Laravel service provider that manually wires the bundle's services), which is a bespoke integration with no upstream guarantee.

Architecture fit — poor for a Laravel stack. The bundle is designed to expose health/readiness signals for Ibexa DXP deployments: typically HTTP endpoints reporting on database connectivity, cache/Redis, search index (Solr/Elasticsearch via Ibexa's search layer), and filesystem/vardir writability. Those checks are tightly coupled to Ibexa services and configuration. In a Laravel app you would be integrating a bundle whose assumptions (Ibexa repositories, ibexa.* service IDs, legacy ezpublish config) simply don't exist. You'd get the endpoint scaffolding but almost none of the useful checks without rewriting them.

Integration feasibility — low as-is, moderate as reference. The realistic use is as a design reference: study how the bundle structures liveness vs. readiness probes, how it returns status codes and payloads, and replicate that pattern using Laravel-native tooling (spatie/laravel-health, Laravel's built-in /up route, or a custom controller). Direct adoption into a Laravel codebase is not recommended.

Technical risk — high, driven by unknown maturity.

  • No community signal: 0 stars, 0 dependents, score 0. There is no evidence of production use, no issue history to inspect, and no third-party validation.
  • Single-vendor stewardship: maintained by xrow (an Ibexa partner). Bus factor and release cadence are unknown; abandonment risk is material for a dependency that touches production health endpoints.
  • Version lock: Ibexa bundles typically pin to a specific DXP major (e.g., v4.x vs v3.3 LTS). Without checking composer.json constraints, assume tight coupling to PHP and Symfony versions aligned with Ibexa, not your Laravel version.
  • Security surface: health endpoints can leak infrastructure detail (service names, versions, error traces). Any adoption requires auditing what the endpoint discloses and restricting access at the network layer.

Key questions to resolve before any decision:

  1. Are we actually running Ibexa DXP anywhere, or is this being evaluated for a Laravel service? (If the latter, stop here — use a Laravel-native health package.)
  2. What are the composer.json PHP/Symfony/Ibexa constraints, and do they intersect our runtime?
  3. Does the bundle ship authentication/authorization for its endpoints, or is it assumed to be network-restricted?
  4. Is there recent commit activity, a changelog, and tagged releases? What is the license?
  5. Which checks are included, and do they map to the failure modes we actually care about (DB, cache, queue, object storage)?

Integration Approach

Stack fit. If the target is genuinely Ibexa DXP, fit is native and the integration is conventional: require via Composer, enable the bundle in config/bundles.php, import its routing, and configure via the Ibexa/Symfony config tree. If the target is Laravel — which the package framing implies — fit is not supported and should be treated as a port, not an install.

Recommended path for a Laravel estate. Do not vendor this bundle. Instead:

  • Adopt a Laravel-native health layer (spatie/laravel-health or a small custom controller) modeled on the same liveness/readiness split.
  • Mirror the contract the bundle implies: an unauthenticated liveness probe returning 200 on process-alive, and a readiness probe that aggregates dependency checks and returns 200/503 with a structured JSON body.
  • Keep response schemas stable so orchestrators and uptime monitors can consume them uniformly.

Compatibility. Verify against our pinned PHP version and, for Laravel, ignore Symfony-bundle compatibility entirely — it is not the relevant axis. For Ibexa, confirm the bundle's supported DXP major matches the deployment and that its transitive dependencies don't force a Symfony upgrade we're unwilling to take.

Sequencing (if pursuing either path):

  1. Discovery — read composer.json, README, CHANGELOG, and open issues; confirm maintenance status and license. Timebox to a few hours.
  2. Decision gate — Ibexa present? → evaluate adoption. Laravel only? → adopt as a pattern reference and proceed to step 4.
  3. Ibexa trial — install in a throwaway DXP environment (Docker), exercise endpoints against healthy and deliberately-broken dependencies (stop Redis, kill DB connection) and record behavior.
  4. Laravel implementation — build the health endpoint, wire checks for DB, cache, queue, and storage; add network-level restriction and a minimal response contract.
  5. Observability hookup — register the endpoint with the orchestrator (K8s probes) or uptime monitor; define alert thresholds.
  6. Runbook — document what each failing check implies and who responds.

Operational Impact

Maintenance. For an Ibexa deployment, maintenance burden is low but outsourced to an unproven maintainer — the real cost is the risk of an unmaintained bundle drifting out of compatibility with DXP upgrades. For Laravel, maintenance burden shifts entirely in-house: a shim/port becomes our code, and we own it. Budget ongoing ownership either way.

Support. No community to lean on — zero dependents means no field-tested issue corpus. Support effectively equals the vendor relationship with xrow. Escalation paths should be confirmed contractually before production reliance.

Scaling. Health endpoints are cheap (a few dependency pings per probe interval) and scale trivially. The scaling concern is probe traffic volume: aggressive readiness intervals across many pods can hammer the database or search cluster the checks are probing. Mitigate with caching of check results and sensible periodSeconds/timeoutSeconds. Note that deep readiness checks that hit the DB can turn a slow database into a cascading pod-restart storm — prefer shallow liveness and moderate readiness.

Failure modes to design for:

  • False negative — dependency blip marks healthy pods unready, orchestrator restarts them, outage amplifies. Guard with consecutive-failure thresholds.
  • False positive — shallow check reports OK while the app is functionally broken (e.g., queue worker dead). Need separate checks per concern.
  • Information disclosure — verbose error payloads exposing hostnames, versions, stack traces. Sanitize responses and restrict access.
  • Endpoint unavailability due to auth — if the bundle expects session auth, orchestrator probes get 401/302 and pods never become ready. Confirm anonymous access is possible or exclude the route from auth middleware.
  • Bundle abandonment — a future DXP upgrade breaks the bundle with no fix forthcoming; plan a fallback (own the endpoint code).

Ramp-up. For a team already fluent in Symfony/Ibexa, near-zero — it's a standard bundle install. For a Laravel team, the ramp-up is negative value: time spent learning Ibexa's DI and service IDs to salvage checks is better spent writing the equivalent Laravel health controller in an afternoon. Estimate a half-day for the pattern-reference approach versus multiple days for a faithful port, with the port yielding lower long-term value than a native implementation.

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.
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator