Current behavior
Proposed behavior
Why?
UpdateWorkflowExecution permits the submitted update ID to exist
already; in this situation it returns information on the state of the
existing update. Clients are encouraged to make use of this behavior
by submitting the request repeatedly until the response indicates
that the update has reached a durable stage. Therefore, we must allow
the request to be submitted against completed updates since, otherwise,
there would be a race condition:
- client submits request 1; response indicates update not yet durable
- update becomes durable and workflow completes
- client submits request 2; receives
WorkflowNotFound error
The above sequence is incorrect: the client's second request -- assuming it comes within the workflow retention period -- should receive
a success response indicating that the update is complete and
containing the update outcome.