Design Rules
The following design rules needs to be respected when creating a flow component:
Functionality first
There is always a decision about providing flexibility by creating single generic components that can be connected together versus larger components that inherits all functionality and may be configured by properties. The user of this component needs to be taken into consideration. A user always wants it easy by using as few components as possible to fulfil his tasks. Therefore, put as much functionality into a component as possible.
What comes in, comes out
Flow components that receive a message as input should always pass the message as output to ensure that other components can participate in the flow. The message that is send to an output might have different content if the component changes it. There are exceptions from this rules that concerns components that only produce outputs such a Queue Input etc. The same goes with properties and memories. If a component produces an output that has another type, for example if a component extracts a property of a message, this component then needs 2 outputs. One for the message that is received as input and one for the resulting property.