rundum/event-base
rundum/event-base gives Laravel developers a lightweight foundation for event-driven code, offering base event classes and helpers for defining, dispatching, and organizing domain events consistently across an application.
Architecture fit
symfony/* components internally, and its dispatcher is PSR-14 adjacent — but nothing here will auto-wire into Laravel's container, EventServiceProvider, queue, or broadcasting layer. All glue is ours to write.Illuminate\Contracts\Events\Dispatcher, model events, observers, queued listeners, Event::fake(), broadcasting. Any adoption needs a stated reason why the built-in mechanism is insufficient.Integration feasibility
Technical risk
Symfony\Contracts\EventDispatcher or its own interface, we inherit a second event system beside Laravel's, splitting observability and debugging.Key questions
symfony/event-dispatcher contracts, PSR-14, or a bespoke interface? This determines whether it composes with Laravel's dispatcher or competes with it.interface-first and semver-versioned, or are we binding to concrete classes?Stack fit
spatie/laravel-event-sourcing, ecotone, prooph, or plain Laravel events. All have adoption, documentation, and a support path. This has none of the three.Migration path
App\Domain\EventBus — and adapt either Laravel's dispatcher or this package behind it. That keeps the decision reversible at near-zero cost and is the single highest-leverage move regardless of which way the spike lands.app/Providers, bind the contracts, and register an adapter that delegates publication to Illuminate\Contracts\Events\Dispatcher so queued listeners, Event::fake(), and existing observability keep working.Compatibility
--parallel testing.Sequencing
Maintenance
path repository or private fork so we can patch without upstream. Steady-state cost is modest (~1–2 engineer-days per year), but any PHP or Symfony major becomes unplanned work on someone else's schedule.composer update.Support
Scaling
Failure modes
ShouldQueue may not be honored by the package's own bus.Ramp-up
Recommendation: Do not take a runtime dependency on a zero-star, zero-dependent, single-maintainer package unless the spike reveals non-trivial behavior we would otherwise rebuild. Default to reproducing the contracts in-house behind an EventBus port — preserving the architectural intent, eliminating the vendor risk, and keeping the option to adopt upstream later if it demonstrates sustained releases and third-party adoption.
How can I help you explore Laravel packages today?