Assume we have a Redux-based chat application. What strategy would you use to handle, for instance, undelivered messages? I see two ways:
1. Let the user to initiate message re-sending. It should simplify error handling logic, but may negatively affect usability. It's also possible that user may not even notice that there are any undelivered messages while talking on multiple channels/with multiple persons at the same time.
2. Implement a "worker" that will check for failed messages and will trigger re-sending automatically once in while. In this case user will require less manual work, but the application should have a more sophisticated logic and I don't really understand how to bring it together with Redux.
Also there could be failed requests for other kinds of data. How would you handle such errors? Is it a bad idea to have a pool of serialized failed requests in the Redux state to be re-sent later?