I don't think that the fact that a user configures sessions == maxSessions indicates that he actually want a SynchronousQueue, that would hold messages at the channel level, and down to the TCP/IP stack. It's something good to have, but perhaps with a configuration parameter 'use-synchronous-queue', regardless of sessions/max-sessions. One could have sessions == maxSessions and still want the ability to queue transactions.