A client might be too busy to process any more work, so sends UNSUBSCRIBE to turn the flow off.
Alternatively, the client may be unaware that a backlog of messages exists and sends UNSUBSCRIBE.
There are at lesat three possible options:
1. The server delays sending the UNSUBACK until the backlog is cleared
2. Send the UNSUBACK and then send the messages
3. Send the UNSUBACK and then purge the messages
The client's last defense should it not want the messages is to disconnect and reconnect with cleanSession set to (1)