patchlevel/event-sourcing
A lightweight but also all-inclusive event sourcing library with a focus on developer experience
Maintainers
Requires
- php: ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0
- doctrine/dbal: ^4.4.0
- doctrine/migrations: ^3.3.2
- patchlevel/hydrator: ^1.8.0
- patchlevel/worker: ^1.4.0
- psr/cache: ^2.0.0 || ^3.0.0
- psr/clock: ^1.0
- psr/container: ^2.0
- psr/event-dispatcher: ^1.0
- psr/log: ^2.0.0 || ^3.0.0
- psr/simple-cache: ^2.0.0 || ^3.0.0
- ramsey/uuid: ^4.7.0
- symfony/console: ^5.4.32 || ^6.4.1 || ^7.0.1 || ^8.0.0
- symfony/finder: ^5.4.27 || ^6.4.0 || ^7.0.0 || ^8.0.0
- symfony/type-info: ^7.2.0 || ^8.0.0
Requires (Dev)
- ext-pdo_sqlite: ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0
- doctrine/orm: ^2.18.0 || ^3.0.0
- infection/infection: ^0.32.0
- league/commonmark: ^2.6.1
- patchlevel/coding-standard: ^1.3.0
- phpat/phpat: ^0.12.0
- phpbench/phpbench: ^1.4.1
- phpstan/phpstan: ^2.1.11
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^11.5.15
- symfony/messenger: ^5.4.31 || ^6.4.0 || ^7.0.1 || ^8.0.0
- symfony/var-dumper: ^5.4.29 || ^6.4.0 || ^7.0.0 || ^8.0.0
- wnx/commonmark-markdown-renderer: ^1.5.0
Suggests
- patchlevel/event-sourcing-psalm-plugin: for psalm support
Provides
None
Conflicts
None
Replaces
None
MIT 273ad58df05c675ac3c0c6d721912b2d16840852
- Daniel Badura <daniel.badura.woop@patchlevel.de>
- David Badura <david.badura.woop@patchlevel.de>
eventsprojectiondddmessagesprocessorDomain Driven Designcqrsevent drivenaggregatesevent-sourcingpatchleveldcbmessage drivendynamic consistency boundary
This package is auto-updated.
Last update: 2026-06-29 19:07:21 UTC
README
👁 Mutation testing badge
👁 Type Coverage
👁 Latest Stable Version
👁 License
Event-Sourcing
An event sourcing library, complete with all the essential features, powered by the reliable Doctrine ecosystem and focused on developer experience.
Features
- Everything is included in the package for event sourcing
- Based on doctrine dbal and their ecosystem
- Developer experience oriented and fully typed
- Automatic snapshot-system to boost your performance
- Split big aggregates into multiple streams
- Versioned and managed lifecycle of subscriptions like projections and processors
- Safe usage of Personal Data with crypto-shredding
- Smooth upcasting of old events
- Simple setup with scheme management and doctrine migration
- Built in cli commands with symfony
- and much more...
Installation
composer require patchlevel/event-sourcing
Documentation
Integration
Supported databases
We officially only support the databases and versions listed in the table, as these are tested in the CI. Since the package is based on doctrine dbal, other databases such as OracleDB and MSSQL may also work. But we can only really support the databases if we can also automatically ensure that they don't break due to changes.
Tip
We recommend using PostgreSQL.
| Database | Version |
|---|---|
| PostgreSQL | 14.20, 15.15, 16.11, 17.7, 18.1 |
| MariaDB | 10.6, 10.11, 11.4, 11.8, 12.1 |
| MySQL | 8.0, 8.4, 9.5 |
| SQLite | 3.x |
