Enabling Workflows

 

A workflow is the configuration that defines how data flows between a source and a target. Most connectors support bidirectional data flow, allowing you to configure workflows that move data from your vendor system to PubSub+ and from PubSub+ to your vendor system. The connector supports multiple concurrent workflows per instance, enabling you to manage various data flows simultaneously. For details about your specific connector, see its documentation.

The provided application.yml enables workflow 0 and 1. To enable additional workflows, define the following properties in the application.yml:

spring:
  cloud:
    stream:
      bindings: # Workflow bindings
        input-<workflow-id>:
          destination: <input-destination> # Source destination (queue, table, etc.)
          binder: (<vendor-binder> | solace) # Binder name for the input system
        output-<workflow-id>:
          destination: <output-destination> # Target destination (topic, table, file, etc.)
          binder: (<vendor-binder> | solace) # Binder name for the output system

solace:
  connector:
    workflows:
      <workflow-id>:
        enabled: true

Where:

  • <workflow-id> is a value between [0-19]

  • <input-destination> is the name of the source destination (for example, my-queue-1 or product-sales-table)

  • <output-destination> is the name of the target destination (for example, /orders/americas or product-sales-table)

  • <vendor-binder> is the name of the binder for your external system

  • Some connectors support workflows in one direction only. For more information, see the Configuring Connection Details section for your specific connector.

  • The connector does not provision queues that do not exist.

For more information about Spring Cloud Stream and the PubSub+ binder, see:

Workflow Configuration Options

These configuration options are defined under the following prefixes:

  • solace.connector.workflows.<workflow-id>.: If the options support per-workflow configuration and the default prefixes.
  • solace.connector.default.workflow.: If the options support default workflow configuration.
Config Option Applicable Scopes Type Valid Values Default Value Description

enabled

Per-Workflow

boolean

(true | false)

false

If true, the workflow is enabled.

transform.​source-payload.​content-type

Per-Workflow

Default

string

One of:

  • application/​vnd.solace.​micro-integration.​unspecified

  • application/json

application/​vnd.solace.​micro-integration.​unspecified

The content type to interpret the source payload as.

See Content Type Interpretation for more info.

transform.​target-payload.​content-type

Per-Workflow

Default

string

One of:

  • application/​vnd.solace.​micro-integration.​unspecified

  • application/json

application/​vnd.solace.​micro-integration.​unspecified

The content type to interpret the target payload as.

See Content Type Interpretation for more info.

transform.​expressions[<index>].​transform

Per-Workflow

Default

string

An expression

-

An expression at some <index> in the ordered list of expressions to transform the message.

For more information, see Mapping Message Headers and Payloads.

acknowledgment.publish-async

Per-Workflow

Default

boolean

(true | false)

false

If true, publisher acknowledgment processing is done asynchronously.

The workflow’s consumer and producer bindings must support this mode, otherwise the publisher acknowledgments are processed synchronously regardless of this setting.

acknowledgment.back-pressure-threshold

Per-Workflow

Default

int

-1 or >= 1

-1

The maximum number of outstanding messages with unresolved acknowledgments.

A value of -1 means that backpressure is disabled.

Message consumption is paused when the threshold is reached to allow for producer acknowledgments to catch up.

acknowledgment.publish-timeout

Per-Workflow

Default

int

>= 1

600000

The maximum amount of time (in milliseconds) to wait for asynchronous publisher acknowledgments before considering a message as failed. A value of -1 means to wait indefinitely for publisher acknowledgments.