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: 2024-11-26 18:47:22 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 I won't promise that I will maintain this package.
Originally, krakboem also contained Symfony implementations for the buses and the normalizers, but for version 1.0 I moved those to rva-vzw/krakboem-bundle. I'm still learning how to write a Symfony bundle, but if you want to use my classes in a Symfony app, using rva-vzw/krakboem-bundle is probably a good idea. If you want to upgrade from version 0.6 to version 1.0, with the bundle, you may want to read the upgrade instructions.
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.
Of those apps, dikdikdik is the one I still regularly work on.
In early versions, I used aggregates and event sourced write model repositories. Those classes are still here in the Cqrs\Aggregate namespace.
But more recently, I started using deciders for dikdikdik. Relevant classes are in Cqrs\Decider.
I reached version 1.0 of dikdikdik. This doesn't mean that I'm completely happy with how I organised the classes. This means that I will try to not have breaking changes in the near future.
Install the package
composer require rva-vzw/krakboem