andreo/eventsauce-outbox
Extended outbox components for EventSauce on PHP 8.2+. Includes an outbox-aware aggregate repository, a forwarding message consumer to dispatch to your queue, and a Symfony Console command to consume relays with batch/commit, sleep, and limit options.
Extended message outbox components for EventSauce
composer require andreo/eventsauce-outbox
use Andreo\EventSauce\Outbox\Repository\EventSourcedAggregateRootRepositoryForOutbox;
new EventSourcedAggregateRootRepositoryForOutbox(
aggregateRootClassName: $aggregateRootClassName,
messageRepository: $messageRepository, // EventSauce\EventSourcing\MessageRepository
regularRepository: $regularRepository // EventSauce\EventSourcing\AggregateRootRepository
)
This consumer dispatch messages through the message dispatcher to the queuing system
use Andreo\EventSauce\Outbox\MessageConsumer\ForwardingMessageConsumer;
new ForwardingMessageConsumer(
messageDispatcher: $messageDispatcher // EventSauce\EventSourcing\MessageDispatcher
)
use Andreo\EventSauce\Outbox\Command\OutboxMessagesConsumeCommand;
new OutboxMessagesConsumeCommand(
relays: $relays, // Symfony\Component\DependencyInjection\ServiceLocator<EventSauce\MessageOutbox\OutboxRelay>
logger: $logger, // ?Psr\Log\LoggerInterface
)
php bin/console andreo:eventsauce:message-outbox:consume foo-relay-id
relays
Relay ids registered in service locator
--run=true
Processing messages run
--batch-size=100
How many messages are to be retrieve batch
--commit-size=1
How many messages are to be committed at once
--sleep=1
Number of seconds to sleep if the repository is empty
--limit=-1
How many times messages are to be processed
How can I help you explore Laravel packages today?