If a service provider is invoked asynchronously (unblocking call), we get following MONIT traces (for a MEP InOut):
- provider side: provideFlowStepBegin,
- sub-provider #1 side (another provider invoked asynchronously): provideFlowStepBegin,
- sub-provider #2 side (another provider invoked asynchronously): provideFlowStepBegin,
- sub-provider #1 side: provideFlowStepEnd
- provider side (the expiration occurs): provideFlowStepEnd. We won't return an error if a time-out occurs
- sub-provider #2 side (when the processing ends normally): provideFlowStepEnd.
Point #5: it's normal to have a 'provideFlowStepEnd' because it's based on the reply returns to the consumer of the main provider. In case of an orchestration, if a timout occurs, a response that is not an error or a fault can be returned.
The expiration does not appear anywhere. And its very difficult to understand point 5 and 6 in temporal point of view.