nicolas-joubert/grabit-bundle
A Symfony bundle that integrates Grabit into PHP applications, providing service configuration and Composer-ready setup for adding Grabit-based functionality. Useful when you want a simple, bundle-managed way to wire Grabit services into Symfony projects.
What changed in v1.5
The release is a single, additive feature: two new domain events — a "source disabled" event and a "source error" event — dispatched by the package's grab component (likely the command/controller that executes a grab run). PR #13, merged into v1.5, with no removals, renames, or deprecations noted in the changelog.
Architecture fit
SourceDisabled/SourceError rather than only throwing or logging shifts the package from "opaque worker" to "observable component," which is exactly the affordance an integrating team wants. This is the right shape of change for a Laravel package.*-bundle with a repo of this shape raises the question of whether it is Laravel-native or a Symfony-style bundle with Laravel compatibility layered on. If it is the latter, the event dispatcher used may not be Illuminate\Contracts\Events\Dispatcher, which would change the integration story entirely. This must be confirmed before we commit.Integration feasibility
Event::listen registrations (or auto-discovered listeners) plus a notification channel. Realistically half a day including a runbook entry.Technical risk
^1.4 will absorb it silently — which is itself a mild risk, since behavior changes arrive without an explicit opt-in.Key questions for the maintainer (or our own spike)
SourceError fire once per run, once per source, or once per failed item? Is there deduplication?SourceDisabled fire on manual disablement, automatic disablement after N failures, or both?Stack fit
SourceDisabled. All three are ordinary Laravel work.Migration path
^1.4 will resolve to 1.5 on the next composer update; pin exactly if we want the upgrade to be a deliberate, reviewable commit rather than an incidental one.1.4.1.Compatibility checks before merge
illuminate/support and illuminate/events constraints against our Laravel version.Sequencing
Maintenance
^1.4.Support
Scaling
SourceError fires per item rather than per run, a broad failure (expired credentials, upstream outage, network partition) produces a burst proportional to source count, not failure count. Queue the listeners, batch the notifications, and rate-limit at the channel.Failure modes
SourceDisabled, sources quietly stop being scraped and no one notices until a downstream report is empty. This is the exact gap v1.5 was built to close, and it only closes if we actually wire something up.Ramp-up
Recommendation
Adopt v1.5. The change is small, additive, and directly improves operational visibility, which is the main deficit of an ingestion package like this. Proceed with a pinned version, a payload-discovery spike before any alerting is enabled, and listeners written to fail soft. Treat the event contract as undocumented and defend against that.
How can I help you explore Laravel packages today?