diff --git a/roles/matrix/tasks/main.yml b/roles/matrix/tasks/main.yml
index ec3d653ae855069a742ce421a5090bea9eb9aec1..51a55413fddbbebd6caa83d32f1c4410c2467259 100644
--- a/roles/matrix/tasks/main.yml
+++ b/roles/matrix/tasks/main.yml
@@ -149,7 +149,7 @@
   git:
     repo: https://github.com/matrix-org/matrix-appservice-irc
     dest: /var/lib/synapse/matrix-appservice-irc
-    version: 0.38.0
+    version: 1.0.0
     force: true
   become: true
   become_user: synapse
@@ -159,9 +159,17 @@
     - Restart matrix-appservice-irc
 
 - name: Install matrix-appservice-irc
-  community.general.npm:
+  community.general.yarn:
     path: /var/lib/synapse/matrix-appservice-irc
-    ci: true
+  become: true
+  become_user: synapse
+  become_method: sudo
+  when: irc_git.changed
+
+- name: Build matrix-appservice-irc
+  command: yarn build
+  args:
+    chdir: /var/lib/synapse/matrix-appservice-irc
   become: true
   become_user: synapse
   become_method: sudo
diff --git a/roles/matrix/templates/irc-bridge.yaml.j2 b/roles/matrix/templates/irc-bridge.yaml.j2
index f73ba350eac3a78e097beda7526a2250df736c5a..9cc3c3dccbd422893cabb6b7d9091cacb5deeae3 100644
--- a/roles/matrix/templates/irc-bridge.yaml.j2
+++ b/roles/matrix/templates/irc-bridge.yaml.j2
@@ -457,7 +457,6 @@ ircService:
 
   # Configuration for logging. Optional. Default: console debug level logging
   # only.
-  # This key CANNOT be hot-reloaded
   logging:
     # Level to log on console/logfile. One of error|warn|info|debug
     level: "warn"
@@ -692,3 +691,11 @@ database:
    # For postgres, it must start with postgres://
    # For NeDB, it must start with nedb://. The path is relative to the project directory.
   connectionString: "socket://synapse:{{ vault_postgres_users.synapse }}@/run/postgresql?db=irc"
+
+# Enable running IRC connections out of a secondary process.
+# See https://matrix-org.github.io/matrix-appservice-irc/latest/connection_pooling.html for more information
+# connectionPool:
+#   # The Redis URI to connect to
+#   redisUrl: redis://user:password@host:port/dbnum
+#   # Should the connections persist after the bridge successfully shuts down?
+#   persistConnectionsOnShutdown: true