Use a dedicated per session thread handles receiving. It uses I/O with busy polling and switches to readiness notifications if no data has been received during the certain configurable time interval. Intended for applications which need low response time (e.g. to receive and react as soon as possible).
Use dedicated per session threads to send and receive messages;
Aggressive strategies of I/O are recommended to use when minimum latency is needed. But it can reduce the throughput.
Try sending from the current thread, if this would block, does the same thing as "EVEN", i.e. queues the message and performs the operation in a worker thread when the corresponding socket becomes ready. The dispatcher thread handles readiness notifications and notifies workers whenever some socket has data to send/receive.
It's recommended to use DIRECT_SEND when there are many concurrent sessions ("many" means much more that than the count of cores used), but on the other hand, application needs a low(er) response time rather than a high throughput.