Extended Sessions for Isolated (Orchestrations)#47
Conversation
|
Couldn't the SDK simply call StreamInstanceHistory if it receives a work item without history instead of fetching a new work item? This is what we do currently when fetching work items from DTS. In that case, DTS will omit history if it can't be fit in the 4 MB gRPC message size limit, but I imagine you could use the same technique to handle you extended session case. |
Discussed with Chris offline and decided that for now this approach is fine. In order for the worker to call The potential issue with the current approach is that the |
This PR adds a new
historyRequiredfield to theOrchestratorResponse. This will be used by the dotnet SDK to handle the edge case where it has since ended an extended session and needs an orchestration history in order to replay the orchestration up to the execution point, but none was provided in theOrchestratorRequest. The SDK will set thehistoryRequiredfield in the response to true, in which case the host will end the extended session and attach a history in the nextOrchestratorRequest(specifically, as discussed in this PR, theOutOfProcMiddlewareclass will check for this flag in the response and throw aSessionAbortedExceptionin the case that it is true).