- transactions within consumer
- aggregate root as a service
- simple types for aggregate commands/queries
- allow inject all headers
What is this about
What it should help me with
It will provide pipe and filters architecture for your system where components are loosely coupled and easily replaceable.
There are a lot of benefits, which will be described in later stage of the project.
How far in development is this framework
This is early stage. A lot of concepts are going to be added and changed.
Keep in my mind, that API may change.
Messaging High Level
A Enricher defines an endpoint that passes a Message to the exposed request channel and then expects a reply message. The reply message then becomes the root object for evaluation of expressions to enrich the target payload.
Basically by defining the request channel, the Payload Enricher acts as a Gateway, waiting for the message that were sent to the request channel to return, and the Enricher then augments the message’s payload with the data provided by the reply message.
When sending messages to the request channel you also have the option to only send a subset of the original payload using the
Messaging Configuration is divined in three forms.
The main one
SimplyCodedSoftware\Messaging\Config\Configuration, which expect
registration of all messaging components. From Configuration we build messaging system, that
has all messaging component defined. What it means it consumer are constructed and connected via
This is main and the only entry for registering messaging components within messaging system.
On to of
Configuration, we have
Configuration his own messaging components.
It works as plug in system for new features.
are interfaces, modules can extend them in any shape they want and provide within understandable language for lower
Module may come with big features, it may be wise to split it into, next separate modules.
ModuleExtension comes to play as extension for a module.
Module does provide plug in system by it own, by defining interface that need to fulfilled by it's
How Configuration, Module, ModuleExtension work together
Configuration during initialization gets list of all modules and module extensions.
This system is flexible and do not any client configuration, because messaging system search for modules and extensions in all of your autoloaded classes.
What does it mean in practice? When you need to do add new feature from
moduleExtension all you need
to do is add package to your