phpgears/cqrs-async-queue-interop

Queue-interop async decorator for CQRS command bus

0.3 2019-10-01 22:11 UTC

This package is auto-updated.

Last update: 2024-11-25 06:32:13 UTC


README

PHP version Latest Version License

Build Status Style Check Code Quality Code Coverage

Total Downloads Monthly Downloads

Queue-interop async CQRS

Queue-interop async decorator for CQRS command bus

Installation

Composer

composer require phpgears/cqrs-async-queue-interop

Usage

Require composer autoload file

require './vendor/autoload.php';

Asynchronous Commands Bus

Please review phpgears/cqrs-async for more information on async command bus

use Gears\CQRS\Async\AsyncCommandBus;
use Gears\CQRS\Async\QueueInterop\QueueInteropCommandQueue;
use Gears\CQRS\Async\Serializer\JsonCommandSerializer;
use Gears\CQRS\Async\Discriminator\ParameterCommandDiscriminator;

/* @var \Gears\CQRS\CommandBus $commandBus */
/* @var \Interop\Queue\PsrContext $context */
/* @var \Interop\Queue\PsrDestination $destination */

$commandQueue = new QueueInteropCommandQueue(new JsonCommandSerializer(), $context, $destination);

$asyncCommandBus new AsyncCommandBus(
    $commandBus,
    $commandQueue,
    new ParameterCommandDiscriminator('async')
);

$asyncCommand = new CustomCommand(['async' => true]);

$asyncCommandBus->handle($asyncCommand);

There are some queue-interop implementations available such as Enqueue which supports an incredible number of message queues

Contributing

Found a bug or have a feature request? Please open a new issue. Have a look at existing issues before.

See file CONTRIBUTING.md

License

See file LICENSE included with the source code for a copy of the license terms.