nsqio / nsq

A realtime distributed messaging platform
https://nsq.io
MIT License
24.89k stars 2.9k forks source link

Message acknowledgement and delivery guarantees #1451

Closed Snawoot closed 1 year ago

Snawoot commented 1 year ago

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?