Title here
Summary here
Define which events matter for each decision. No fixed aggregates; just queries that fetch exactly what you need.
Works with any PHP framework or runs standalone. Use it with Laravel, Symfony, Slim, or your own custom setup.
PDO-compatible adapters for storing events and projections are included. Supports MySQL and SQLite out of the box.
Prevent race conditions with built-in version checking that detects concurrent modifications.
Add logging, validation, transactions, or any cross-cutting concern by wrapping core operations with middleware.
Write expressive tests using the Scenario component with given-when-then syntax that reads like specifications.