Message Outbox for Doctrine 3

Published at 24 August 2021

Packagist Version

composer require eventsauce/message-outbox-for-doctrine
use EventSauce\MessageOutbox\DoctrineOutbox\DoctrineOutboxRepository;
use EventSauce\MessageOutbox\OutboxMessageDispatcher;

$outboxRepository = new DoctrineOutboxRepository($connection, $tableName, $messageSerializer);
$messageDispatcher = new OutboxMessageDispatcher($outboxRepository);

To ensure dispatching and persisting of messages is done in a single transaction, use the transactional repository wrapper:

use EventSauce\MessageOutbox\DoctrineOutbox\DoctrineTransactionalMessageRepository;

$messageRepository = new DoctrineTransactionalMessageRepository(
    $connection,
    $innerMessageRepository, // based which uses the same db connection,
    $messageSerializer,
);
Frank de Jonge

EventSauce is a project by Frank de Jonge.