-
-
Notifications
You must be signed in to change notification settings - Fork 149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support federation requests in ruma-client #892
Comments
Might this also require changes from #528? |
Since ruma-client just sends requests and receives responses, no. Those changes would be for the side receiving the requests (and generating responses). |
I think #894 could help with some version incompatibilities, should they rise up in the future. |
Deferring this. I think in any case the |
👍 to a seperate |
Updated the issue description to describe separate client types. That makes this no longer a breaking change. |
After discussing #894 a bit in the spec room, i think that the federation client needs to handle versioning differently than the normal client, as the primary intention for the federation api is to handle them in a fallback manner, retrying them with another version if the newest one isnt supported. To make this easier, we could offer objects ("dialers") which could try each of these endpoints in-turn, returning control briefly to the callee before trying a new one, to either bail or alter the input. (Maybe something like ControlFlow could be used) This could incorporate Additionally, we could allow the callee to retrieve which endpoint the dialer had chosen in the end, to allow a subsequent call to quickly use that endpoint, before falling back to the normal sequence if it fails. |
Currently the API in ruma-client is only usable for client-server endpoints.
We should have a
FederationClient
(and maybe later an appservice one too) for non-CS requests.The text was updated successfully, but these errors were encountered: