By default, Laravel Eloquent events are dispatched internally. This package enables the events to be dispatched to an event bus instead.
Require the package with composer require asseco-voice/laravel-eloquent-event-broadcaster
.
Service provider for Laravel will be installed automatically.
Using STOMP as a queue driver will support the communication between multiple Laravel services because it will be dispatching events with raw data so that it doesn't break on the other side.
This is completely optional however. If you're not using Laravel for microservices, your data will be serialized the standard Laravel way.
Make the model use a BroadcastsEloquentEvents
and created
, updated
, deleted
and restored
events will be automatically dispatched to a eloquent::model_events
queue.
Raw data being sent consists of:
payload
key containing original model serialized to array.- Let your model implement
AppendsData
interface to append additional data to payload. - Changes (
_changes
) array holdingold
/new
values andtype
/ID
of entity that changed the model. Used for auditing purposes (can be disabled through config). - Headers consisting of:
service
- lowercase snake app namemodel
- full model namespace and model nameaction
- which action was performed on the model (pulled from registered actions which can be appended or modified in the config)
- Let your model implement
AppendsHeaders
interface to append additional headers.
You can tweak the configuration publishing it with:
php artisan vendor:publish --tag=asseco-broadcaster-config