macpaw/symfony-health-check-bundle
A Symfony bundle that adds configurable health check endpoints to your app, with built-in and custom checks for databases, cache, and other services. Expose readiness and liveness status for monitoring, load balancers, and Kubernetes.
Architecture fit
macpaw/symfony-health-check-bundle is a Symfony bundle (type: symfony-bundle), not a Laravel package. It hooks into Symfony's kernel: registration in config/bundles.php, a DependencyInjection\Extension config tree, a compiler pass for tagged checkers, and a kernel event subscriber that binds the route. Laravel runs none of that machinery. There is no extra.laravel.providers entry and no service provider to discover.Integration feasibility
composer require, enable the bundle, tag checkers, import the route. Under an hour.symfony/cache alongside illuminate/cache creates two parallel infrastructure configurations and two sources of truth for connection settings — an operational smell for a health endpoint.Technical risk
Key questions
/up route, spatie/laravel-health, cloud LB probes, APM agents?Stack fit
/health (liveness) and /health/ready (readiness) controller returning aggregate JSON with 200/503 — via spatie/laravel-health or a thin in-house package; (b) if specific MacPaw checks are genuinely wanted, consume those classes as leaf utilities behind a Laravel service provider, with zero reliance on its routing or configuration.Migration path
{status, checks:[{name, status, duration_ms, detail}], version, timestamp} with a fixed status vocabulary. Map both frameworks onto it.Compatibility
symfony/* overlap already present via Laravel's transitive dependencies; adding more can produce confusing container/config error surfaces that cost debugging time out of proportion to the value delivered.Sequencing
/health and /health/ready in Laravel services with network scoping.Maintenance
composer update, follow majors.Support
Scaling
Failure modes
Ramp-up
TPM recommendation: do not adopt for the Laravel stack — the package installs but cannot function there, and a bridge reimplements its only real value while inheriting an unsupported maintenance path. Treat it as a reference implementation for the health response contract, and as a genuine adoption candidate only for the Symfony slice of the estate, if one exists.
How can I help you explore Laravel packages today?