Message Ordering with Retry and NACK (how does it work)

Hi @Aaron ,

I am working with a scenario where a publisher is sending a large volume of guaranteed messages (50k messages/second) with a payload of 300 bytes each. If publisher successfully sent 1 million messages, but received a NACK (negative acknowledgment) for one message during transmission.

Details:

  • API : Solace C API (latest)
  • Broker : Solace Appliance (N-1)

I have the following queries:

  1. Besides a full queue, under what other conditions does the broker send a NACK?
  2. If a NACK is received and the spool clears after a few seconds, will the Solace C API automatically resend the message from the publisher’s side?
  3. Does the publisher application need to maintain a correlation tag or an acknowledgment queue for tracking message status?
  4. Upon receiving a NACK, how does the Solace C API handle it? Does it require any action from the publisher application?
  5. What are solace document pages or discussion that can help me for this case?