Single flow and multiple flow services
Services that use the message warehouse can be of either of two
types:
- Single flow
- A single-flow service consists of a single message flow that processes messages completely without storing them for further processing. Such a message flow gets a message from its input queue, processes it, and puts it to its final destination queue. The processing of FTM SWIFT message flows is transactional, and the results of the transaction are not visible until the transaction was committed by the message broker. For this reason, a single-flow service needs to put a message into the message warehouse only once. Typically, it does this after processing has completed, so that the most recent version of the message is stored.
- Multiple flow
- A multiple-flow service processes messages
using more than one message flow. For example, when some of the processing
is dependent on a certain condition being fulfilled (such as a timer
event expiring), it might be necessary to divide the processing into
two message flows:
- One that does initial processing, stores the partially processed message in a database, and initiates the condition for further processing. This flow stores the message in the message warehouse and sets its status.
- One that is triggered by the condition, retrieves the partially processed message, and continues processing it. This flow contains a message warehouse update node (DniMwhUpdate), which updates the message content and status.