Flow Settings
Every flow has settings that can be configured via the settings tab.
The following settings are available:
- Flow name
- Flow component
- Synchronous
- Components Timeout
- Tracing
- Environment Variables
Flow name
The flow name can be changed after creation, but the name has to be unique. Saving the flow is not possible when the name is not unique.
Flow component
This setting transforms the flow to a flow component. For more information of Flow components you can read this guide.
Synchronous
By default this setting is false so it means the flow is asynchronous. When a flow is asynchronous all messages will pass through a queuing mechanism for every component in a flow. This means that the messages are stored in memory until the next component has received and acknowledged it. This way Dovetail can guarantee the correct processing and delivery of all messages. This is also the recommended setting.
You can also configure your flow to be synchronous. When 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. The synchronous approach will not use message queues to communicate between components, but will directly communicate with each other. Please note that this can increase load and will reduce the ability to scale the Dovetail system. This is only useful for specific use cases.
Components timeout
This settings only works when the flow is asynchronous. This settings control the timeout between communcation of components. When 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 seconds.
Tracing
By turning tracing on, all exchanges between components will be logged. These logs can be viewed in the Flow Manager. The logs will only be stored during the set period, after that it will be deleted.
Environment variables
To work with specific variables in the Test and Production environments you can define some environment variables. These can be used for many purposes, for example: usernames, passwords, URL's,... Environment variables can be used in components by using the following notation:
#{name}
When the flow is installed these variables will be replaced with their actual values.
Encryption
Environment variables are frequently used to store passwords and other sensitive information. Thats why we decided to encrypt all environment variables before they are stored in the database, they will never be stored as plain text. They only get decrypted to show them in the flow settings and when a flow is installed.