rva-vzw / krakboem
Interfaces and some classes for CQRS and event sourcing
Requires
- php: ^8.3
- ramsey/uuid: ^4.2
- symfony/serializer: ^6.0
Requires (Dev)
This package is not auto-updated.
Last update: 2025-02-18 20:05:52 UTC
README
This package contains interfaces and some classes I use for the event sourced software I write in php.
I created it to learn about event sourcing. If you want to use it, you can (under the conditions of the GNU Affero General Public License), but as it turns out, my opinion on how to do event sourcing in PHP is always changing, so this is not a stable package. (I had the intention of making it stable by releasing version 1.0, but I failed.)
For the moment, I have three projects that use krakboem:
- dikdikdik, my famous app to keep track of the score of the solo whist card game.
- wdebelek, a web app to play card games. We used it in Covid times.
- 1jg, another score app.
These apps all use the 1.0.1 version of the package, but I am currently completely changing it for version 2.0. dikdikdik will probably migrate to version 2.0.
Expect these changes for version 2:
Almost everything changes:
- New namespaces
- I will provide basic implementations for the various buses, that don't depend on Symfony Messenger. (Because I never really used the advanced features of Symfony Messenger.) You should be able to use Symfony Messenger in your own implementation of the various buses though.
- No more support for the old Aggregate class and the old EventSourcedWriteModelRepository. I will use deciders from now on.
- Use the normalizer of Symfony 7 (I want to decouple from Symfony normalizer as well, but probably not in version 2 of krakboem).
- Use cool new php 8.4 features
How to install the package:
composer require rva-vzw/krakboem