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

Actuator Bundle Laravel Package

symsensor/actuator-bundle

A Symfony bundle that adds actuator-style endpoints for application health, info, and runtime diagnostics. Configure readiness/liveness checks and expose operational status for monitoring and deployment workflows.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — primary finding stands: this is not a Laravel package, and v1.1.0 does not change that. symsensor/actuator-bundle is a Symfony bundle. Its value proposition remains inseparable from Symfony-specific primitives: kernel event listeners, DI service tags, compiler passes, and bundle registration. Laravel has no bundle concept, no service-tag aggregation, and Illuminate\Container has materially different resolution semantics. A composer require into a Laravel app will not yield working endpoints. v1.1.0 is a single-line compatibility change to the Symfony version axis — an axis that is orthogonal to our stack. Nothing in the release touches the container coupling, the contributor discovery mechanism, or the endpoint contract.

What may be transferable is unchanged: the domain layer (health-contributor contract, status aggregator, serializing controller). Whether that layer is container-agnostic remains the first thing to verify by reading source.

Integration feasibility: low for direct dependency (unchanged in substance, but the failure mode has shifted), moderate for concept port. This is the one finding the release materially updates. The prior assessment flagged a probable Composer conflict — Laravel 11/12 pull symfony/* ^7, and a bundle pinned to a 2023-era matrix would likely refuse to install without --ignore-platform-reqs. PR #1 explicitly adds Symfony 7.0 compatibility, so that conflict is now likely resolved and a dry install probably succeeds.

That is not an improvement in our position. It converts a loud, self-announcing failure (Composer stops you) into a silent one (Composer succeeds, the bundle registers nothing in a Laravel kernel, and a developer reasonably concludes the capability is installed). The capability gap is also unchanged: Laravel ships a native /up route since 11.x, and spatie/laravel-health is mature. Symfony 7 support does not move either of those facts.

Technical risk: high, concentrated in provenance — with one modest positive signal. One star and zero dependents still means no production evidence: nobody has visibly run this under load, behind a load balancer, or through a framework upgrade. v1.1.0 does show an external contributor's PR merged promptly, which is weak evidence the maintainer is responsive and the project is not fully abandoned. Weigh that correctly: one merged PR is a data point, not a cadence. There is still no security disclosure path, no governance, and two releases do not constitute a track record. MIT licensing remains clean. The dominant concern is unchanged — a dormant dependency in the health-probe path is uniquely bad, because that path is what orchestration platforms use to decide whether to kill your pods.

Key questions — status after v1.1.0:

  • What Symfony and PHP version constraints are declared? Largely answered. Symfony 7.0 is now declared compatible. Still open: the exact PHP floor, and whether the Symfony 7 path received the same test coverage as 6.x or was a constraint widening only. A constraint bump without CI against 7.x is a claim, not a guarantee.
  • Is the health-contributor abstraction container-agnostic, or does discovery depend on Symfony compiler passes? Unanswered and now the highest-value question. It determines whether option 1 (reference reimplementation) is a 1–2 day job or a from-scratch design.
  • Does it distinguish liveness from readiness, or expose a single aggregate endpoint? Unanswered.
  • Does the response payload expose environment details, config values, or exception traces? Unanswered. Probe endpoints are frequently unauthenticated and cluster-reachable; detail leakage is a real finding, not a theoretical one.
  • Are checks time-bounded, or does a hung dependency hang the probe and trigger a restart loop? Unanswered.
  • Is there authentication, IP allow-listing, or rate limiting built in? Unanswered.
  • New: does the Symfony 7 compatibility PR include test or CI changes, or is it a version-constraint edit only?

Integration Approach

Stack fit: effectively zero as a drop-in. The ranking is unchanged, and v1.1.0 does not reorder it:

  1. Use as a reference specification, not a dependency. Read the contributor contract and status-aggregation model, then implement an internal Laravel health module (interface, service-provider registration, aggregate controller, config file). Estimated 1–2 engineer-days. Retains the Spring-Actuator design intent — separable liveness/readiness, per-check status, machine-readable payload — with none of the dependency or maintenance exposure.
  2. Adopt a maintained Laravel-native alternative. Benchmark spatie/laravel-health plus Laravel's built-in /up against the required probe contract first. If it satisfies orchestration requirements, this closes the item immediately.
  3. Fork and re-bind to a Laravel service provider. Only justified if the Symfony implementation contains non-trivial check logic worth salvaging. You inherit full maintenance ownership.
  4. Bridge a Symfony kernel inside Laravel. Reject. Booting a second kernel to serve one endpoint is disproportionate operational and cognitive cost.

Migration path and compatibility. The Composer conflict is likely gone, which slightly changes the spike but not its purpose. Still timebox one day in a throwaway Laravel app — but re-scope it: do not spend the time attempting resolution, since install will probably succeed and prove nothing. Go straight to source. Map domain classes against framework bindings, confirm whether contributor discovery is a compiler pass, and confirm what the kernel actually registers. The deliverable is a build-vs-adopt decision, not an install log.

Sequencing. (a) Source review spike, focused on container coupling. (b) Decide build-vs-adopt against the alternative. (c) Define the endpoint contract explicitly — paths (/healthz, /readyz), status codes, payload schema, timeout budget. (d) Implement or integrate, with tests covering degraded and hard-down dependency states. (e) Wire into Kubernetes probes or the ALB/ECS target-group health check, verifying probe interval and timeout align with the check's worst-case latency. (f) Add to the on-call runbook.

Operational Impact

Maintenance. The moment this becomes a runtime dependency, the team is the de facto maintainer. v1.1.0 is a genuine, if small, improvement over the prior signal: the project is not frozen, and an external contribution was accepted. That does not change the budgeting conclusion — the release history is still two releases, with no roadmap and no security advisory process. Either reserve 1–2 engineer-days per quarter to track and patch it, or vendor/fork with a clear owner. An unowned dormant dependency in the health path is an incident waiting for a trigger.

Support and ramp-up. Unchanged: no community, no issue-corpus, no documentation beyond a README, and zero downstream users to consult. For a Laravel-only team, ramp-up is non-trivial not because the concept is hard but because the bundle's idioms — service tags, compiler passes, bundle config trees — do not transfer to Laravel mental models. Budget 3–5 days for a mid-level engineer to reach confident, tested implementation.

Scaling. Throughput is a non-issue at probe frequencies. The scaling concern is blast radius: a health endpoint performing deep transitive checks on every call amplifies a single dependency blip across every replica simultaneously, and orchestration platforms respond by restarting the fleet. Checks must be shallow, time-bounded, and ideally cached with a short TTL. Probe interval and timeout must be tuned against measured worst-case latency, not assumed.

Failure modes to enumerate in the design review:

  • Silent no-op install (new, and now the leading integration risk). With the Symfony 7 conflict resolved, composer require succeeds in a Laravel app while registering nothing functional. A developer sees a clean install and assumes the capability exists. Mitigate by requiring a live endpoint hit in the definition of done for any probe work.
  • False negative during a transient dependency outage → coordinated restart storm across all replicas, converting a dependency degradation into a self-inflicted full outage. Mitigate with readiness-only semantics and cached status.
  • False positive — a handler returning 200 unconditionally defeats the probe entirely and is worse than no probe, because it manufactures false confidence.
  • Detail leakage — stack traces, environment names, dependency hostnames, or config surfaced in an unauthenticated cluster-reachable endpoint.
  • Dependency conflict on upgrade — reduced in likelihood for the Symfony 7 axis, but a future Laravel major could still collide; the risk is deferred, not eliminated.
  • Silent abandonment — no security advisories, so a vulnerability in the path goes unpatched without anyone noticing. v1.1.0 lowers this probability slightly; it does not remove it.

Recommendation. Unchanged: do not take a runtime dependency on this package. Treat it as a design reference for a small, owned, Laravel-native health module, or adopt a maintained alternative if one meets the probe contract. v1.1.0 is a real but narrow signal — Symfony 7 support matters to Symfony users and is irrelevant to a Laravel stack, except insofar as it removes the install-time guardrail that previously made the mismatch obvious. The durable value here remains the Spring Actuator pattern, not the 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.
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
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource