matrix-org / matrix-org/synapse-bind-sydent
This module blocks Synapse while waiting for Sydent to respond to the bind/unbind request
- Dominant language
- Python
- Stars
- 6
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
Synapse will `await` on the module API callbacks that this module relies on, which blocks Synapse's execution on this module's code. Since this module makes HTTP requests to an external process (Sydent), if that external server is taking a while to respond, this can cause Synapse to in turn respond slowly to client requests.
Since this module relies on Synapse module API methods that only fire after a third-party ID is successfully added or removed (removed functionality added in #3), such callbacks should immediately relinquish control back to Synapse and then in a separate thread go and send a request to Sydent and wait for a response.
Contributor guide
Research direction
Start at the module API callbacks that handle successful third-party ID additions and removals, then trace the HTTP requests to Sydent. Confirm that each callback returns control to Synapse immediately while the Sydent request and response handling run separately, and verify that slow Sydent responses no longer delay Synapse client requests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100