andy-thorne/domain-events-bundle
doctrine/orm (Laravel 8+ supports Doctrine via laravel-doctrine).spatie/laravel-messenger).event(new MyEvent())) is simpler but lacks Doctrine-triggered events. This package’s post-flush hook would require custom Laravel Doctrine listeners.laravel-doctrine compatibility, entity mapping).illuminate\queue).Event::dispatch() → dispatch(new DomainEvent())) meet needs?spatie/laravel-event-sourcing)?laravel-doctrine (but not recommended for most Laravel apps; Eloquent is preferred).illuminate\queue) for async dispatch.spatie/laravel-messenger for Symfony Messenger compatibility).Event::dispatch() is simpler but lacks Doctrine-triggered events.laravel-doctrine + custom Doctrine listeners.laravel-doctrine + spatie/laravel-messenger.created, updated).Event::dispatch() and handle with listeners.// Instead of Messenger, use Laravel Queues
event(new DomainEvent($entity));
// Or via Doctrine listener:
$entityManager->getEventManager()->addEventListener(
\Doctrine\ORM\Events::postFlush,
fn() => DomainEvent::dispatchAll()
);
symfony/messenger bridge).laravel-doctrine updates.spatie/laravel-event-sourcing may offer better support.| Risk Area | Impact | Mitigation Strategy |
|---|---|---|
| Doctrine Integration | Events not fired due to misconfig | Use laravel-doctrine + thorough testing. |
| Queue Failures | Events lost or delayed | Implement retry logic and dead-letter queues. |
| Symfony API Changes | Bundle breaks in Laravel | Abstract Symfony dependencies behind adapters. |
| Event Ordering | Out-of-order processing | Use transactional outbox pattern (e.g., store events in DB before commit). |
How can I help you explore Laravel packages today?