karma is an event sourcing library for PHP. It helps you to
- handle commands
- store events
- protect invariants
- react to events
- project events
- test an application
The name refers to the principle of cause and effect where all actions of an entity influence the future of that entity. Hence the state of the world is only the sum of all events of the past. This is also the principle of event sourcing.
Shallow men believe in luck or in circumstance. Strong men believe in cause and effect.
Ralph Waldo Emerson
To use karma in your project, require it with Composer
composer require watoki/karma
If you would like to develop on karma, clone it with git, download its dependencies with composer and execute the specification with scrut.
git clone https://github.com/watoki/karma.git
cd karma
composer install
vendor/bin/scrut
The documentation of karma is written in the form of an executable specification. You find it in the spec
folder.