The session idle timeout is a client-side feature. It enables applications to transparently roll to a new session when no message arrives in the current session for a period.
In the current implementation, the idle timer starts as soon as a message is emitted downstream. The timer is canceled if the next message arrives within the timeout. If no messages arrive within the timeout, the timeout is triggered to close the session.
A simplified flow looks like below [where Stage* is a stage in the asynchronous pipeline] :