Package: matrix-synapse
Version: 0.99.2-3
Severity: normal

The Synapse workers are a way to split the Synapse process into pieces and
possibly distribute them over multiple systems to balance the load between
these nodes. But even on a sole system, workers give an improvement in
response time and user experience. To ease the use of this workers it
would be helpful to include the config files in the Debian package.

To use workers you have to use a reverse proxy like Nginx or Apache to
send some of the requests to other processes than the main process. The
start of the worker processes could easily be done by Systemd.

To reroute the requests, there are rules for Nginx in
/etc/matrix-synapse/worker/*.nginx. For each worker you can reference these
rules in the *location* block:

    location /_matrix/ {
        proxy_pass http://[::1]:8008;
        proxy_set_header X-Forwarded-For $remote_addr;

        include /etc/matrix-synapse/worker/client_reader.nginx;
        include /etc/matrix-synapse/worker/event_creator.nginx;
        …
    }

In homeserver.yaml, you have to add these entries

    # The replication listener on the synapse to talk to.
    worker_replication_host: 127.0.0.1
    worker_replication_port: 9092
    worker_replication_http_port: 9093

and some more for some of the workers; look at their config file in
/etc/matrix-synapse/worker. After this, restart the Synapse process.

Then go and enable the worker services you want to use (you don't have to
use all)

    systemctl enable --now matrix-synapse@client_reader.service
      matrix-synapse@event_creator.service
      matrix-synapse@federation_reader.service
      matrix-synapse@media_repository.service
      [email protected]

In the end, it's pretty easy to use worker processes and having theses
config files in the Debian package would support the usage of them.

-- System Information:
Debian Release: buster/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 
'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.0.0-trunk-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_CRAP, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), 
LANGUAGE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages matrix-synapse depends on:
ii  adduser                    3.118
ii  debconf [debconf-2.0]      1.5.71
ii  libjs-jquery               3.3.1~dfsg-1
ii  libpython3-stdlib          3.7.3-1
ii  lsb-base                   10.2019031300
ii  python3                    3.7.3-1
pn  python3-attr               <none>
pn  python3-bcrypt             <none>
pn  python3-canonicaljson      <none>
pn  python3-daemonize          <none>
ii  python3-distutils          3.7.3-1
pn  python3-frozendict         <none>
pn  python3-jsonschema         <none>
pn  python3-msgpack            <none>
pn  python3-nacl               <none>
pn  python3-netaddr            <none>
ii  python3-openssl            19.0.0-1
pn  python3-phonenumbers       <none>
ii  python3-pil                5.4.1-2
pn  python3-prometheus-client  <none>
pn  python3-psutil             <none>
ii  python3-pyasn1             0.4.2-3
ii  python3-pyasn1-modules     0.2.1-0.2
pn  python3-pymacaroons        <none>
pn  python3-service-identity   <none>
pn  python3-signedjson         <none>
ii  python3-six                1.12.0-1
pn  python3-sortedcontainers   <none>
pn  python3-systemd            <none>
pn  python3-treq               <none>
pn  python3-twisted            <none>
pn  python3-unpaddedbase64     <none>
pn  python3-yaml               <none>

Versions of packages matrix-synapse recommends:
pn  python3-bleach    <none>
ii  python3-jinja2    2.10-2
ii  python3-lxml      4.3.3-1
pn  python3-psycopg2  <none>

Versions of packages matrix-synapse suggests:
pn  python3-txacme  <none>

Attachment: synapse-worker.tar
Description: Unix tar archive

Attachment: signature.asc
Description: PGP signature

Reply via email to