diff --git a/changelog.d/12621.doc b/changelog.d/12621.doc
new file mode 100644
index 0000000000000000000000000000000000000000..d29fb9cb995e2a20dec36a029b730ea4d8258d34
--- /dev/null
+++ b/changelog.d/12621.doc
@@ -0,0 +1 @@
+Add information about the TCP replication module to docs.
diff --git a/docs/replication.md b/docs/replication.md
index e82df0de8a30e743215990ddc914e57a47e7e870..108da9a065d8702de8aed44395daea77c5493822 100644
--- a/docs/replication.md
+++ b/docs/replication.md
@@ -35,3 +35,8 @@ See [the TCP replication documentation](tcp_replication.md).
 There are read-only version of the synapse storage layer in
 `synapse/replication/slave/storage` that use the response of the
 replication API to invalidate their caches.
+
+### The TCP Replication Module
+Information about how the tcp replication module is structured, including how
+the classes interact, can be found in
+`synapse/replication/tcp/__init__.py`
diff --git a/synapse/replication/tcp/__init__.py b/synapse/replication/tcp/__init__.py
index 1fa60af8e6bcdf90322df72144aade017c2d0e51..2c5f5f0bf86750a7e364078009c2d440f1db803c 100644
--- a/synapse/replication/tcp/__init__.py
+++ b/synapse/replication/tcp/__init__.py
@@ -15,7 +15,7 @@
 """This module implements the TCP replication protocol used by synapse to
 communicate between the master process and its workers (when they're enabled).
 
-Further details can be found in docs/tcp_replication.rst
+Further details can be found in docs/tcp_replication.md
 
 
 Structure of the module: