Jeroen, What solution are you proposing - it is not clear? There is acknowledgement that there is a need to manage messages at the NSI layer in deciding when to give up on a communication if no response comes. The details of that decision (and whether you make it a different state machine) is not needed in the Service state machine. The Service state machine just needs to know when a message is undeliverable or when the other NSA is unreachable. The separation of concerns allows scaling rather than putting everything in one state machine. Inder On Fri, Dec 7, 2012 at 4:41 AM, Jeroen van der Ham <vdham@uva.nl> wrote:
Hi,
On 6 Dec 2012, at 16:26, Inder Monga <imonga@es.net> wrote:
The MDL layer essentially handles the case when MTL fails to deliver a message. The scenario being, whichever reliable message transport layer or multiple of them below, tries to deliver the message end to end. In case the message does not reach after multiple retries, the error is handed to MDL layer (and yes it is logical). The MDL layer can have a different timeout, choose to deliver the message again or try a differnet mechanism. That is upto the implementor. This prevents the NSI state machine having to deal with message timeouts and retries at the application layer. It simplifies the state machine .
If there is more confusion lets have a skype call.
The use-case sounds reasonable. The solution to me does not, basically you're saying: We don't want to overcomplicate the state machine, so we add another layer. That layer will have another state machine.
I don't see how that simplifies things in this case.
Jeroen.