I’m modelling an email subscription workflow (using the Go SDK), where a user can be matched to 1 or more third party providers.
When there’s > 1 match I’d like to start the activities concurrently, as I don’t mind which order they are done in, just that they complete.
I can see there’s workflow.Go can/should I:
- Use workflow.Go with a stdlib Waitgroup to ensure my workflow blocks until N activities completes?
- Start each activity and just return from the workflow then, if so, what does that mean for completion?
- Convert each activity to a workflow, start them as child workflows but return immediately?
I’m concerned that some providers are pretty unreliable and as such, I’d rather not delay the API calls to the reliable ones (and I’d prefer not to maintain an order of priority for providers if I can help it).