event-sourcing-bundle
An event sourcing bundle, complete with all the essential features, powered by the reliable Doctrine ecosystem and focused on developer experience.
Event-sourcing-bundle: Symfony integration for event sourcing
This bundle brings event sourcing to Symfony applications on top of the Doctrine ecosystem.
What the bundle provides
Event-sourcing-bundle is a Symfony integration for the event-sourcing library. The README describes it as a bundle with all the essential features for event sourcing, powered by the Doctrine ecosystem and focused on developer experience. It is built on top of doctrine dbal and the surrounding ecosystem. The README lists the included capabilities. An automatic snapshot system boosts performance. The bundle can split big aggregates into multiple streams. Subscriptions such as projections and processors have a versioned and managed lifecycle. Personal data is handled safely through crypto shredding. Old events can be upcast smoothly to new schemas. The bundle also offers simple setup with schema management and doctrine migration, plus built in CLI commands. The README says everything needed for event sourcing is included in the package, and that the bundle is developer experience oriented and fully typed. The project home page is patchlevel.dev and the documentation is linked from the README for each feature, including snapshots, split streams, subscriptions, personal data, upcasting, store schema management, and CLI commands for daily work. The README links each feature to its own documentation page, so a developer can read about snapshots, split streams, subscriptions, personal data, upcasting, and CLI commands one topic at a time.
Developer experience and typing
The README emphasizes developer experience as a core goal of the bundle. It states the package is fully typed, which means PHP type information is available throughout so editors and static analysis can catch mistakes early. The snapshot system is described as automatic and is presented as a way to boost performance by avoiding replay of long event streams. Splitting big aggregates into multiple streams is offered for cases where a single aggregate would grow too large. Subscriptions, which cover projections and processors, have a versioned and managed lifecycle so they can be evolved safely. Personal data handling uses crypto shredding, which the README lists as a safe method for removing sensitive data by deleting the encryption key rather than the records. Upcasting lets old events be adapted to new schemas without rewriting history. The README groups these as the practical features a developer meets when building an event sourced Symfony application, and it links each one to its documentation page so the reader can go deeper on any single topic. Crypto shredding is presented as the safe path for personal data, because deleting the key makes the stored records unreadable without the cost of rewriting or deleting the underlying event history.
Installation and setup
Installation is shown as a single Composer command in the README. composer require patchlevel/event-sourcing-bundle. The README adds a warning that if you do not use the Symfony Flex recipe for the bundle, you need to follow extra setup steps, which it points to in the documentation. The bundle relies on doctrine dbal for storage, so a Doctrine configured Symfony application is the expected environment. Built in CLI commands are provided so common tasks can be run from the terminal rather than written by hand. Schema management and doctrine migration support are mentioned as part of simple setup, meaning the database tables for events and projections can be created and updated through the bundle rather than manual SQL. The README presents the Flex recipe as the smooth path and the manual path as the alternative for projects that opt out of Flex. The project metadata lists PHP as the language and MIT as the license, and the package is published on Packagist for easy installation through Composer. The warning about the Symfony Flex recipe shows the bundle has two setup paths, and the README points to the docs for the manual steps that the Flex recipe would otherwise handle automatically for the developer.
Editorial conclusion
The bundle is written in PHP and is released under the MIT license. Installation is a single command, composer require patchlevel/event-sourcing-bundle.
Community notes