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

Health Bundle Laravel Package

mainlycode/health-bundle

Health Bundle adds configurable health-check endpoints to PHP applications, letting monitoring tools verify application, database, cache, and dependency status through simple, extensible checks.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — the headline finding: this is a Symfony bundle, not a Laravel package. The request frames it as a Laravel/PHP candidate, but a Symfony bundle depends on Symfony's Kernel, Bundle extension classes, DependencyInjection config trees, and bundle registration in config/bundles.php. Laravel shares Symfony components (HttpFoundation, Routing, Console) but has no bundle loader, no bundle extension contract, and a different container bootstrapping model. composer require will succeed; nothing will register a route. Fit for a Laravel codebase is effectively zero without writing an adapter — at which point you have written the feature yourself and inherited a dependency for free.

Integration feasibility: Trivial to reimplement, non-trivial to port. A /health endpoint is a route plus a controller returning {"status":"ok"} with a 200/503 decision. Laravel 11+ ships this natively (withRouting(health: '/up')). For dependency-aware checks, spatie/laravel-health is the mature, widely-adopted option. There is no capability in this bundle that justifies an adapter layer.

Technical risk:

  • Supply chain: 0 stars, 0 dependents, single-maintainer signal, vetting score of ~16.8. No peer review, no observable consumer base, no evidence of a security disclosure process. This is unvetted code on an internet-adjacent endpoint.
  • Exposure surface: health endpoints are a classic information-leak vector — stack traces, env names, DB hostnames, versions. Any third-party implementation must be audited for what it emits on failure, and must be network-restricted rather than publicly routable.
  • Abandonment: with no adoption curve, the realistic assumption is that you own the code from day one. MIT license means you can fork; it does not mean anyone will fix it.
  • Provenance: last release dated 2026-08-21 with no visible adoption history means you cannot infer stability from release cadence.

Key questions for the maintainer / sponsor:

  1. Is there a Laravel port, or a documented path to use this outside a Symfony kernel? (Expected answer: no.)
  2. What exactly does the endpoint return on failure — status codes only, or diagnostic payloads?
  3. Are dependency checks (DB, cache, queue) blocking, optional, or absent? What are the timeouts?
  4. Is liveness vs. readiness distinguished, or is there a single undifferentiated endpoint?
  5. Who is on the hook for security response, and what is the SLA?
  6. Is there a Symfony service in our estate at all? If not, this evaluation is moot.

Recommendation: Do not adopt for Laravel. Build a ~20-line internal route, or use the framework native route, or adopt spatie/laravel-health if you need dependency probes. If a Symfony service exists, time-box a spike there — but even then, this is a small, unadopted package and the same build-vs-buy math applies.

Integration Approach

Stack fit: Poor for Laravel. Good-to-neutral for Symfony. The two must be evaluated separately; conflating them is the trap in the original framing.

Migration path (Laravel): Do not migrate — substitute. Sequence: (1) confirm target framework version; (2) if Laravel 11+, enable the native health route; (3) if deeper checks are required, add spatie/laravel-health and configure checks explicitly; (4) only consider a third-party bundle if it clears a security review and we are on Symfony.

Compatibility: PHP version and Symfony major-version constraints are the real gate. A bundle pinned to a specific Symfony LTS line will not travel across major versions. No Laravel compatibility statement exists, and none should be assumed. Framework-native alternatives carry no cross-framework constraint at all — a decisive advantage.

Sequencing:

  1. Inventory the estate: which services are Laravel, which are Symfony.
  2. For Laravel targets, close the item immediately with the native route or Spatie — do not spend further evaluation cycles.
  3. For Symfony targets, security-review the source, verify timeout behavior on dependency checks, and confirm the response payload reveals nothing sensitive.
  4. Standardize the contract across services (path, status codes, JSON shape, liveness vs. readiness semantics) rather than the implementation. Contract consistency is what the platform team actually needs; per-framework libraries are an implementation detail.

Operational Impact

Maintenance: With zero dependents and one maintainer signal, plan for full ownership. Budget for vendoring or forking if adopted. On the Laravel side, the native route carries zero incremental maintenance; Spatie carries community maintenance; this bundle carries yours.

Support: No community, no third-party documentation, no Stack Overflow corpus. Escalation path is reading the source. That is acceptable only for code small enough to read in ten minutes — which is also an argument that it is small enough to have written.

Scaling: Health endpoints are deceptively high-QPS. Kubernetes liveness/readiness probes across N pods at short intervals produce steady, bursty traffic. Requirements: the endpoint must be cheap, must not query the database on every liveness probe, must be excluded from APM tracing and access-log noise, and must not sit behind rate limiting that produces false negatives. The design question is whether dependency health belongs in liveness (no) or readiness (yes, with timeouts). If the bundle blocks on shared dependencies for liveness, it is architecturally wrong regardless of quality.

Failure modes to design against:

  • Cascading restart: readiness tied to a shared database means one DB blip restarts the entire fleet, converting a degradation into an outage.
  • Load amplification: probes hitting the DB multiply baseline query load by pod count × probe frequency.
  • False negative at the LB: a malformed or slow response drains all instances simultaneously.
  • Information disclosure: verbose failure payloads leaking internals to anything that can reach the path.
  • Silent abandonment: the package rots against a future PHP/Symfony upgrade, and the endpoint fails open or closed without anyone noticing until an incident.

Ramp-up: Near zero for a competent PHP developer either way. This is precisely why the adoption case fails — the learning cost saved is minutes, while the supply-chain and ownership costs are unbounded. The correct call is to spend the twenty minutes.

Bottom line: Low score, zero adoption, wrong framework. Close as "reject for Laravel — build native," and reopen only as a scoped Symfony question if the estate inventory justifies it.

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.
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
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums