Founder and CEO of prooph software GmbH
Founder and core contributor prooph components
contact@prooph.de
Supported Web Frameworks
or any other framework/codebase supporting container-interop & interop-config
more:
uses:
PES
less:
JS-Frontend
API Gateway
Websocket
Read
Write
Read
Write
Legend
Event Store
Document DB
Message Queue
Process Manager
Search Service
API Gateway
Write
Service
PHP-FPM
PHP Process
f(ctx, req) -> res
PHP Process
f(ctx, req) -> res
PHP Process
f(ctx, req) -> res
PHP Process
f(ctx, req) -> res
PHP Process
f(ctx, req) -> res
Command Handler
f(state, cmd) -> events
f(ctx, req, handleCmd) -> res
Command Handling PHP Process
<?php
namespace Prooph\Micro\Kernel;
use Phunkie\Types\ImmList;
use Phunkie\Types\Kind;
use Phunkie\Validation\Validation;
use Prooph\Common\Messaging\Message;
use Prooph\EventStore\EventStore;
use function Phunkie\Functions\function1\compose;
//...
//Command dispatcher
return compose(
$handleCommand,
$enrichEvents,
$persistEvents,
$publishEvents)($command);
f(state, cmd) -> events
//Command dispatcher
return function (Message $command)
use ($eventStore,
$snapshotStore,
$commandMap,
$publisher
): Validation {
//...
$pipe = function ()
use ($command,
$handleCommand,
$enrichEvents,
$persistEvents,
$publishEvents
) {
return compose(
$handleCommand,
//...
)($command);
};
return Attempt($pipe); // -> Success | Failure
};
FPM
FPM
API Gateway
Infinite Scalability
f(ctx, req, handleCmd) -> res
f(ctx, req, handleCmd) -> res
f(ctx, req, handleCmd) -> res
f(ctx, req, handleCmd) -> res
f(ctx, req, handleCmd) -> res
f(ctx, req, handleCmd) -> res
E1
E2
E3
E4
E5
Event Log
Document DB
Message Queue
Process Manager
Search Service
Services
subscribe
consume