mediagone / cqrs-bus
DDD ready implementation of Command, Event and Query bus.
Installs: 1 672
Dependents: 1
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- php: ^7.4|^8.0
- doctrine/orm: ^2.7|^3.0
- mediagone/doctrine-specifications: ^0.3|^0.4|^0.5
- symfony/dependency-injection: ^5.0|^6.0
Requires (Dev)
- phpunit/phpunit: ^9.0
README
⚠️ This project is in experimental phase, the API may change any time.
Services are core classes of any application, and keeping them well organized may be a real challenge. Except if you're working on a small RAD or POC project, your services will quickly grow as messy classes.
This package combines two useful patterns:
- CQRS which separates actions (commands) from data retrieval (queries) services.
- Chain of Responsibility which involves chains of middlewares to handle these commands and queries. Possibilities offered by middleware buses are endless and easily extensible.
It will help you to:
- Decouple read and write models.
- Wrap every service calls with generic behaviors: logging, queuing, security, asynchronous handling...
- Split your services and repositories into multiple classes (enforce Single Responsibility Principle).
Installation
This package requires PHP 7.4+ and Doctrine ORM 2.7+
Add it as Composer dependency:
$ composer require mediagone/cqrs-bus
License
CQRS Bus is licensed under MIT license. See LICENSE file.