Collecting results for bulk operations

The workflow fails to drain the signal channel before calling continue as new. Temporal guarantees that if a channel is fully drained using async receive and no blocking operations are executed after that, no signal is lost. But your code calls activities after draining the signals. So all signals that are received during the activity execution will be ignored.

To fellow space travelers landing here in future, I have modified the code according to @maxims suggestions. I now get the expected behavior. Although draining signals on exit, is documented, it was not immediately obvious how to restart with the missed history. After watching the very informative 3hour workshop on YT, state in workflow execution is a lot clearer now. (Temporal Intro Workshop with Go (3 hrs with Q&A) - Márk Sági-Kazár (Banzai Cloud/Cisco) - YouTube) Thanks @maxim for your assistance and a great product!

3 Likes