summary refs log tree commit diff
path: root/host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix
diff options
context:
space:
mode:
Diffstat (limited to 'host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix')
-rw-r--r--host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix41
1 files changed, 41 insertions, 0 deletions
diff --git a/host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix b/host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix
new file mode 100644
index 0000000..af7e544
--- /dev/null
+++ b/host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix
@@ -0,0 +1,41 @@
+
+{ config, pkgs, lib, ... }:
+let
+  cfg = config.services.matrix-synapse;
+  streamWriters = lib.range 0 (cfg.eventStreamWriters - 1);
+in
+{
+  services.matrix-synapse = {
+    settings = {
+      instance_map = lib.listToAttrs (lib.map (port: {
+        name = "stream-writer-${toString port}";
+        value = {
+          path = "/run/matrix-synapse/stream-writer-${toString port}.sock";
+        };
+      }) streamWriters);
+
+      stream_writers = {
+        events = lib.map (index: "stream-writer-events-${toString index}") streamWriters;
+      };
+    };
+
+    workers = lib.listToAttrs (lib.map (index: {
+      name = "stream-writer-${toString index}";
+      value = {
+        worker_app = "synapse.app.generic_worker";
+        worker_listeners = [
+          {
+            type = "http";
+            path = "/run/matrix-synapse/stream-writer-${toString index}.sock";
+            resources = [
+              {
+                names = ["replication"];
+                compress = false;
+              }
+            ];
+          }
+        ];
+      };
+    }) streamWriters);
+  };
+}
\ No newline at end of file