From release series 4.8.3 Dovetail has ‘one way’ and ‘request reply’ options to configure the integration flows more efficient. By consciously dealing with the exchange pattern, it is possible to prevent timeouts by not having components wait for each other unnecessarily. You can use this setting, for example, when sending information to a separate logging system.
The one way and request reply option is available in the following components:
All wiretaps can be replaced by the recipient. If you don't need to wait for an answer, you can set the exchange pattern parameter in the recipient to one way.
The deprecated flowlink component has been replaced by two new components: the outbound and the inbound flowlink. These no longer route the messages synchronously (via memory), but asynchronously (via queues). This makes it less important that the flow to which it is linked is installed. Messages sent to a linked flow through an outbound flowlink are queued if the linked flow is not installed.
When needed the inbound and outbound flowlink components can be configured to be sequential so that the messages are routed in a synchronous way that respects the order. Keep in mind that this will reduce the throughput of a flow and can cause increasements in memory usage.
A split component used only for splitting up a large message into smaller message can be configured to be one way. Aggregation is still possible, but there is no guarantee that the splitted messages will be aggregated in the same order that they were split.
When the order of splitted messages is important then the splitter can be configured to use Request reply for its exchange pattern.
When many messages end up in the content router queue, these messages will be taken from the queue and they will be kept in memory until they have passed the content router. When set to request reply, the content router will wait for the reply before processing the next message. If it is not necessary to wait for the answer, the content router can be set to one way. This will highly improve the throughput of messages.
If there is a chance that timeouts will occur after calling an inbound http component, it is possible to set it as one way. Immediately after calling, a code 200 is returned to the caller. This can be applied if the response from the service is not important, as may occur when using the POST method. If the answer is important, for example with GET, it is recommended to increase the timeout in the flow settings and to set the inbound http to request reply.
Asynchronous and synchronous
For reasons of message order, it is no longer necessary to set a flow synchronously in the flow settings. Both the Split (parallel = false) and the Recipient handle messages in sequence as long as they are set to request reply. Only for messages that can exceed 100MB during processing is it necessary to set the flow to be synchronous.