There are two types of consumer processing failures:
-
Poison messages. Messages that are badly formatted and either cause the consuming application to crash or otherwise fail to process the message.
-
Downstream dependency failures. I.e. when a message is valid but a downstream dependency such as a database isn't available. This category can further be subdived into:
a. All messages on the queue are destined to the same unavailable downstream.
b. The downstream dependencies may be different depending on the message. (e.g. different databases or integration endpoints).