A very experimental CQRS framework using Symfony Messenger

1.0 2024-01-11 20:53 UTC

This package is not auto-updated.

Last update: 2024-02-16 20:04:38 UTC


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