diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 692d8a2a17..fb400a3a91 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -1035,6 +1035,25 @@ include_dir 'conf.d'
       </listitem>
      </varlistentry>
 
+     <varlistentry id="guc-remote-servers-connection-check-interval" xreflabel="remote_servers_connection_check_interval">
+      <term><varname>remote_servers_connection_check_interval</varname> (<type>integer</type>)
+      <indexterm>
+       <primary><varname>remote_servers_connection_check_interval</varname> configuration parameter</primary>
+      </indexterm>
+      </term>
+      <listitem>
+       <para>
+        Sets the time interval between optional checks that the remote servers
+        are still alive. If this parameter is set to a valid value, registered
+        callback functions are executed at the specified time interval.
+        If your FDW extension does not implement a callback function, nothing
+        happens after the specified amount of time. If the value is specified
+        without units, it is taken as milliseconds. The default value is
+        <literal>0</literal>, this means the feature is disabled.
+       </para>
+      </listitem>
+     </varlistentry>
+
      </variablelist>
      </sect2>
 
diff --git a/doc/src/sgml/fdwhandler.sgml b/doc/src/sgml/fdwhandler.sgml
index dbf5dd3d15..8e245f87dc 100644
--- a/doc/src/sgml/fdwhandler.sgml
+++ b/doc/src/sgml/fdwhandler.sgml
@@ -2136,4 +2136,34 @@ GetForeignServerByName(const char *name, bool missing_ok);
 
   </sect1>
 
+   <sect1 id="fdw-checking-remote-servers">
+    <title>Checking the Health of Remote Servers via Foreign Data Wrapper</title>
+
+    <para>
+     For verifying the health of remote servers, callback functions can be
+     registered that runs periodically. The time interval is controlled by
+     <xref linkend="guc-remote-servers-connection-check-interval"/>.
+     The API for registering functions is:
+    <programlisting>
+void
+RegisterCheckingRemoteServersCallback(CheckingRemoteServersCallback callback, void *arg);
+    </programlisting>
+     Only functions that return nothing can be registered as callback functions.
+     Please set to <literal>void* arg</literal> if you want to pass an argument.
+     If problems are found by the health check and want to abort the transaction,
+     please send a signal <systemitem>SIGINT</systemitem> to the backend process.
+    </para>
+    <para>
+     Note that starting the periodic run is FDW's responsibility.
+     If you want to start verification, the following function must be performed
+     after registering callback functions:
+     <programlisting>
+int
+EnableForeignCheckTimeout(void)
+     </programlisting>
+      The periodic run will stop at end of each transaction.
+    </para>
+   </sect1>
+
+
  </chapter>
