Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Eventsauce Outbox Laravel Package

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.

View on GitHub
Deep Wiki
Context7

eventsauce-outbox 3.0

Extended message outbox components for EventSauce

composer require andreo/eventsauce-outbox

Requirements

  • PHP >=8.2
  • Symfony console ^6.2

Previous version docs

Repository without message dispatching


use Andreo\EventSauce\Outbox\Repository\EventSourcedAggregateRootRepositoryForOutbox;

new EventSourcedAggregateRootRepositoryForOutbox(
    aggregateRootClassName: $aggregateRootClassName,
    messageRepository: $messageRepository, // EventSauce\EventSourcing\MessageRepository
    regularRepository: $regularRepository // EventSauce\EventSourcing\AggregateRootRepository
)

Forwarding message consumer

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
)

Command to dispatching messages from the outbox


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

Command options

relays

  • required
  • string[]

Relay ids registered in service locator

--run=true

  • optional
  • default: true

Processing messages run

--batch-size=100

How many messages are to be retrieve batch

  • optional
  • default: 100

--commit-size=1

How many messages are to be committed at once

  • optional
  • default: 1

--sleep=1

Number of seconds to sleep if the repository is empty

  • optional
  • default: 1

--limit=-1

How many times messages are to be processed

  • optional
  • default: -1 (infinity)
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style