Requests that modify push rules cannot be routed to workers #13382
Open
Description
This issue has been migrated from #13382.
matrix-org/synapse#5063 allowed worker processes to service read-only push rule-related endpoints. This is an issue to track the remaining push rule-related endpoints that require writes.
The following endpoints cannot yet be routed to worker processes:
PUT /_matrix/client/v3/pushrules/{scope}/{kind}/{ruleId}
DELETE /_matrix/client/v3/pushrules/{scope}/{kind}/{ruleId}
PUT /_matrix/client/v3/pushrules/{scope}/{kind}/{ruleId}/actions
PUT /_matrix/client/v3/pushrules/{scope}/{kind}/{ruleId}/enabled
I believe this hinges on converting the push rules stream to use a MultiWriterIdGenerator, instead of what we have today? https://github.com/matrix-org/synapse/blob/0d1d3e070886694eff1fa862cd203206b1a63372/synapse/storage/databases/main/push_rule.py#L132-L139
We did a similar piece of work for moving presence off of the main process.