Need a closer look? Download and review slides presented at Replay 2023 here.
At Yum Brands, we initially implemented the former approach for our menu publishing process since it was somewhat less code & slightly more intuitive.
However, it came with a notable caveat that wasn’t immediately apparent to us as new Temporal users- additional complexity to tracking the success and failure of the synchronized activities. That complexity is due to the synchronized activities running in a workflow entirely independent of the parent workflow where we’re aggregating successes & failures.
This is of particular concern for us since: - Our parent workflow performs a large batch of these synchronized activities - There is a distinct possibility that these activities will have non-recoverable failures that we must track.
The latter approach resolves that complexity by keeping the batch of activities executing directly in the parent workflow, where we can easily track their successes and failures with standard TS try/catch flow control. This change significantly simplified the code for our use case despite requiring somewhat more code overall.