Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Allow moving group read APIs to workers (#6866)
Browse files Browse the repository at this point in the history
  • Loading branch information
erikjohnston committed Feb 7, 2020
1 parent 7d5268d commit 77a1665
Show file tree
Hide file tree
Showing 9 changed files with 802 additions and 767 deletions.
1 change: 1 addition & 0 deletions changelog.d/6866.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add ability to run some group APIs on workers.
8 changes: 8 additions & 0 deletions docs/workers.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,13 @@ endpoints matching the following regular expressions:
^/_matrix/federation/v1/event_auth/
^/_matrix/federation/v1/exchange_third_party_invite/
^/_matrix/federation/v1/send/
^/_matrix/federation/v1/get_groups_publicised$
^/_matrix/key/v2/query

Additionally, the following REST endpoints can be handled for GET requests:

^/_matrix/federation/v1/groups/

The above endpoints should all be routed to the federation_reader worker by the
reverse-proxy configuration.

Expand Down Expand Up @@ -254,10 +259,13 @@ following regular expressions:
^/_matrix/client/(api/v1|r0|unstable)/keys/changes$
^/_matrix/client/versions$
^/_matrix/client/(api/v1|r0|unstable)/voip/turnServer$
^/_matrix/client/(api/v1|r0|unstable)/joined_groups$
^/_matrix/client/(api/v1|r0|unstable)/get_groups_publicised$

Additionally, the following REST endpoints can be handled for GET requests:

^/_matrix/client/(api/v1|r0|unstable)/pushrules/.*$
^/_matrix/client/(api/v1|r0|unstable)/groups/.*$

Additionally, the following REST endpoints can be handled, but all requests must
be routed to the same instance:
Expand Down
3 changes: 3 additions & 0 deletions synapse/app/client_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
RoomStateRestServlet,
)
from synapse.rest.client.v1.voip import VoipRestServlet
from synapse.rest.client.v2_alpha import groups
from synapse.rest.client.v2_alpha.account import ThreepidRestServlet
from synapse.rest.client.v2_alpha.keys import KeyChangesServlet, KeyQueryServlet
from synapse.rest.client.v2_alpha.register import RegisterRestServlet
Expand Down Expand Up @@ -124,6 +125,8 @@ def _listen_http(self, listener_config):
PushRuleRestServlet(self).register(resource)
VersionsRestServlet(self).register(resource)

groups.register_servlets(self, resource)

resources.update({"/_matrix/client": resource})

root_resource = create_resource_tree(resources, NoResource())
Expand Down
2 changes: 2 additions & 0 deletions synapse/app/federation_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
from synapse.replication.slave.storage.appservice import SlavedApplicationServiceStore
from synapse.replication.slave.storage.directory import DirectoryStore
from synapse.replication.slave.storage.events import SlavedEventStore
from synapse.replication.slave.storage.groups import SlavedGroupServerStore
from synapse.replication.slave.storage.keys import SlavedKeyStore
from synapse.replication.slave.storage.profile import SlavedProfileStore
from synapse.replication.slave.storage.push_rule import SlavedPushRuleStore
Expand Down Expand Up @@ -66,6 +67,7 @@ class FederationReaderSlavedStore(
SlavedEventStore,
SlavedKeyStore,
SlavedRegistrationStore,
SlavedGroupServerStore,
RoomStore,
DirectoryStore,
SlavedTransactionStore,
Expand Down
Loading

0 comments on commit 77a1665

Please sign in to comment.