ecotone/pdo-event-sourcing
Full event sourcing for Ecotone, backed by your relational database via PDO: event-sourced aggregates and sagas, catch-up and streaming projections, event upcasting and replay. PostgreSQL and MySQL supported, with in-memory testing via EcotoneLite and no external infrastructure.
To contribute make use of Ecotone-Dev repository.
Ecotone is the PHP architecture layer that grows with your system — without rewrites.
From #[CommandHandler] on day one, to event sourcing, sagas, outbox, and distributed messaging at scale — one package, same codebase, no forced migrations between growth stages. Declarative PHP 8 attributes on the classes you already have.
Full Event Sourcing support for Ecotone, backed by your relational database via PDO. Event-sourced aggregates, projections, upcasting, and replay — all driven by attributes on your existing classes.
#[EventSourcingAggregate] — one attribute flips state-stored to event-sourced#[EventSourcingSaga] — durable workflows where every state transition is a replayable event in your database#[Projection] — catch-up, reset, partition, and streaming variantsSame testing story as the rest of Ecotone: spin up the event store in memory with EcotoneLite::bootstrapFlowTesting, replay events into your projections, and assert on results — no external infrastructure required.
Visit ecotone.tech to learn more.
Works with Symfony, Laravel, or any PSR-11 framework via Ecotone Lite.
See the quickstart guide and reference documentation. Read more on the Ecotone Blog.
Ecotone ships with MCP server, Agentic Skills, and LLMs.txt for any coding agent. See the AI Integration Guide.
Use issue tracking system for new feature request and bugs. Please verify that it's not already reported by someone else.
If you want to talk or ask questions about Ecotone
If you want to help building and improving Ecotone consider becoming a sponsor:
PHP, Event Sourcing, Event Store, Projections, Event-Sourced Sagas, Durable Workflows, CQRS, DDD, PostgreSQL, MySQL, Ecotone
How can I help you explore Laravel packages today?