Best practices: Waiting on the result of 2+ flows before further processing

Hello,

I have a question around best practices when designing a pipeline that needs has 2 or more separate but concurrent flows that may be processed simultaneously but need to be synchronized at a point where output from both flows is merged before further processing may happen. The screenshot below is an example for one of our production pipelines:

In the pipeline above, an inbound Salesforce payload initiates the pipeline. The snaps at the bottom perform preliminary validations on the payload, if the validations all succeed then we need to make a web service login call to DestinyOne (an external system) to obtain a session ID. I have two questions in this regard:

  1. In the flow below, the web service login SOAP call is made regardless of whether or not the bottom flow is successful. What would be the recommended way of modifying this pipeline to only issue the web service call if the validations are successful? (the light blue snaps in the bottom flow are router snaps)
  2. To wait on the response of both flows before proceeding further we are currently using a Join snap (Merge). Is this the recommended approach for achieving this behavior?

There is a new GATE snap that you might find useful (rather than a join/merge)

https://docs-snaplogic.atlassian.net/wiki/spaces/SD/pages/918487380/Gate

1 Like