matrix-org / matrix-org/synapse-bind-sydent

This module blocks Synapse while waiting for Sydent to respond to the bind/unbind request

Open
#5 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.