This is an event store abstraction for the Phauthentic Event Sourcing Library. It provides a simple interface for storing and retrieving domain events by aggregate, with pluggable backends for different storage engines.
- PHP 8.2 or higher
composer require phauthentic/event-store- EventStoreInterface – Contract for storing and replaying events by aggregate
- PDO Event Store – SQL-backed store (MySQL, MariaDB, PostgreSQL, SQLite, MS SQL Server)
- In-Memory Event Store – For testing, prototyping, and demos
- EventFactory – Create events from arrays and convert events to arrays
- Serialization – Pluggable serializers for payload and metadata
use Phauthentic\EventStore\Event;
use Phauthentic\EventStore\InMemoryEventStore;
use Phauthentic\EventStore\ReplyFromPositionQuery;
$eventStore = new InMemoryEventStore();
$event = new Event(
aggregateId: 'order-123',
aggregateVersion: 1,
event: 'OrderCreated',
payload: ['amount' => 99.99],
createdAt: new \DateTimeImmutable()
);
$eventStore->storeEvent($event);
foreach ($eventStore->replyFromPosition(new ReplyFromPositionQuery('order-123', 1)) as $storedEvent) {
// Process event...
}Please start by reading documentation in this repository.
Copyright Florian Krämer
Licensed under the MIT license.