As far as I can see NSQ considers message in channel delivered as soon as it was sent to any consumer. It's consumer responsibility to make an active effort and requeue message if the message was not processed by consumer.
Here is the question. How NSQ can claim "at least once delivery" if it can effectively lose message on the edge between NSQ and consumer? It is completely possible that consumer client may crash while receiving message or TCP connection will be interrupted after message was sent to socket buffer and removed from channel. No re-queuing will happen because NSQ does not require explicit acknowledgement.
If possible, can we also have an answer to this question in FAQ?
Hello,
As far as I can see NSQ considers message in channel delivered as soon as it was sent to any consumer. It's consumer responsibility to make an active effort and requeue message if the message was not processed by consumer.
Here is the question. How NSQ can claim "at least once delivery" if it can effectively lose message on the edge between NSQ and consumer? It is completely possible that consumer client may crash while receiving message or TCP connection will be interrupted after message was sent to socket buffer and removed from channel. No re-queuing will happen because NSQ does not require explicit acknowledgement.
If possible, can we also have an answer to this question in FAQ?