The failover: reconnect logic can submit duplicate messages, if a send reply is lost. this is trapped by the producerAudit. The audit keeps an LRU cache of producerIds and message sequence ids. The default value is 64. This is a little small if many producers come and go. It can be configured via:
. The problem is picking a value.
If a connection is down for an indeterminate time, the number of producers that will be seen by the audit is indeterminate. It can be made very large, but this will consume memory resources. The audit needs to be maintained on a connection basis. This will suffer from the same problem, how many connections to audit, but with connection pools this can be mitigated better than producers.