Retry federation requests
The ActivityPub specs:
For federated servers performing delivery to a third party server, delivery SHOULD be performed asynchronously, and SHOULD additionally retry delivery to recipients if it fails due to network error.
We don't provide any retry system. If sending a message fails, it lost forever. This is not critical, but at the same time, it would be interesting to add as soon as possible to ensure messages are sent. This way we can avoid to find bugs that were, in fact, just a punctual network connection fail.
The easiest way to resolve this problem would be using a background job system for this:
All of them use Redis to save the information which:
- It is good to keep state and retrying after a restart
- It is bad because the architecture is more complex
Another solution would be a simpler
- It couldn't retry the requests after a server restart
- We have to be careful with the shutdown process.