Thank you Henry and Ron.
Which acknowledgement mode we should be using for this case? And, suppose our application consumed the message successfully, and in the meanwhile, the broker gets restarted without having any acknowledgement, then, i believe it will redeliver the message, right? And, what will happen for non-persistent messages?
Should we persist the correlation ids somewhere in DB, and, will then check for every incoming message against the stored ones, but won't it be a big performance hit?