So, if a client library should discard messages that exceed the configured max attempts, does that mean each message sent from a producer to a consumer includes some kind of "attempts" counter?  If so, does the responsibility of discarding messages fall to the client because each client might have a different max attempts configured?  What does "discard" mean in this context:  Does it mean the client sends `FIN` back?