Skip to main content
Version: 4.15.0

Flow Settings

The settings of a flow can be configured via its Settings tab.

Flow settings

Configuration

A flow has the following configuration options:

Name

Defines the name of the flow.

unique flow name

Flow names have to be unique within a Tenant. You can't save a flow when its name is not unique.

Enable Flow Component

Enable this setting to transform a flow into a Flow Component.

using flow components

Read more about Flow Components here.

Transport

The transport mechanism used between Dovetail components. Default is the most common use case.

TransportQueueExplanationUsage
DefaultNoNo transport mechanism is used. Components are called directly after each other.Simple use case (Standalone flows). It's the default setting.
SynchronousNoWhen you configure your flow to be synchronous, the output of the last component in your flow will be used as a response to the first component.For synchronous (request/response) interactions with strict order of messages.
AsynchronousYesWhen you configure your flow to be asynchronous, messages are stored an in-memory blocking queue between components.For asynchronous (fire-and-forget) interactions. Especially to increase performance when using steps with high load (for example enrichment).
QueuesYesAll messages will pass through a queuing mechanism. This means that the messages are stored on a broker outside of the flow until the next component has received and acknowledged it.For synchronous (request/response) or asynchronous (fire-and-forget) interactions with large messages and guaranteed delivery. Note this mechanism can be slower to process messages in a flow.

Components Timeout

Defines the timeout in milliseconds between communication of components. Whenever a component doesn't respond before the timeout has been reached, the exchange will be passed to the Error Route. The default timeout is 20.000 milliseconds (20 seconds).

note

Only available when Transport is set to Queues.

Trace Configuration

In Dovetail you can enable tracing to see all the transactions (exchanges) between components, giving you advanced insight into your flow while it's running. These transactions are shown in the Flow Manager - Flow Transactions.

The selected time period defines how long these transactions are stored, they are deleted afterwards.

disk usage and impact on performance

Transactions are stored in a database on the server your Dovetail instance is running on. Avoid enabling tracing on flows that process large files and/or headers and set the time to the smallest value you can to make sure the server doesn't run out of disk space.

Saving a copy of each message can impact the performance of your flow. Disable tracing on flows that process large quantities of data and/or large files. You can implement a Management by Exception solution to monitor these types of flows.

Flow properties

Flow properties are static variables that can be used in the configuration of your flow. All defined Flow properties are shown in this table and you add new ones with the button.

Flow properties

Flow properties use the #{name} notation. When a flow is installed it replaces this syntax with the corresponding Test or Production value. Input fields in component configuration show a button to indicate you can use Flow properties in that field. Click the button to insert them easily.

tip

Read more about using variables in Dovetail on this reference page.

Encryption

Because Flow properties are frequently used to store passwords and other sensitive information they are encrypted before they are stored in the database. They are never stored as plain text and are only decrypted to show them in the Flow settings or when a flow is installed.

Meta data

Every flow has a couple of predefined Flow properties like flow_name, tenant and server. They are easily recognised because they can't be deleted and are usefull for many purposes, i.e. generating detailed error messages.

Headers in Flow properties

You can insert header notation in the values of a Flow property. In a running flow it will set with the value of the header (if it exists) in every location where the Flow property notation is used.

Example
When a Flow property with Name name & Value ${header.this} is set and the flow is installed with the #{name} notation in a Velocity component:

If header this (before the Velocity component):

  • value is (set to) anything -> #{name} is replaced with anything
  • value is empty -> #{name} is empty
  • doesn't exist -> #{name} is empty