With shared subscriptions where the workload is balanced between multiple subscribers (say S1, S2 ..., SN):
If S1 receives a message but during processing realizes that it cannot handle the request, for example because a database connection is down, is there a way to decline, or NACK, the message such that another subscriber S2 gets a chance to process the message.
Secondary, if S1 receives a message and crashes. Is there a way for the broker to detect that the message receipt was not acknowledge within a reasonable timeframe such that another subscriber S2 gets a chance to process the message?
I realize that shared topics is not in the MQTT 3.x standard.
On MQTT 3.x, is there a similar way for a single subscriber to acknowledge receipt (as opposed to publish acknowledgement) and for the broker to deliver the message later in case of crash. In this case multiple subscribers would all have to ACK independently, but a specific use case would be a single subscriber scenario.
Mikkel