This content has been marked as final. Show 2 replies
The PRD contains the following, but not all of it makes sense (for example the calling service does not know *how* it has been invoked nor can the response be received within the context of a transaction).
Invoking a service from the action chain of another service, blocking and waiting N amount of time for a response.
- If the calling service (the one with the SSI action) is being executed synchronously then it needs to provide an exception back to its waiting client.
- If the calling service is being executed asynchronously then the message needs to be sent to the Redelivery Service.
The waiting for a response should still be within the context of a transaction so that a timeout of the SSI action causes a transactional rollback, no message loss due to SSI action timeout.
I think it would be better to have the timeout behaviour configurable, so the action has the option of throwing an exception to the caller or continuing the processing in some way. What do you think?
As for transactions, the action should allow for any encompassing transaction to be suspended (and always resumed on completion) but should not rollback on failure as timeouts are application behaviour.