Today, signals must be targeted by activity id, which require users to construct the raw activity ID string the same way Flux does it internally. While this is not complicated, it does make it more difficult for Flux to adjust its naming strategy in the future.
Instead, Flux should support accepting three separate fields in the signal input, instead of activityId.
For example, today a DelayRetry signal's content would be this:
The partitionId field would be ignored for non-partitioned steps.
It might be feasible to drop the attemptNumber input entirely; we could instead determine the applicable attempt number by comparing the event order of the various ActivityTaskFailed and WorkflowExecutionSignaled events.
Today, signals must be targeted by activity id, which require users to construct the raw activity ID string the same way Flux does it internally. While this is not complicated, it does make it more difficult for Flux to adjust its naming strategy in the future.
Instead, Flux should support accepting three separate fields in the signal input, instead of activityId.
For example, today a
DelayRetry
signal's content would be this:Instead, we could accept this input:
The
partitionId
field would be ignored for non-partitioned steps.It might be feasible to drop the attemptNumber input entirely; we could instead determine the applicable attempt number by comparing the event order of the various ActivityTaskFailed and WorkflowExecutionSignaled events.