diff --git a/README.md b/README.md
index b0a7d18affba4a398d8ee043a3bd258cf9004735..50dd986baf20f6ec3c57e102cf10f6f63dc41294 100644
--- a/README.md
+++ b/README.md
@@ -73,6 +73,7 @@ and in README files for individual Ansible roles:
 * [Docker usage](roles/docker/README.md)
 * [CLI tool usage](docs/cli.md)
 * [Testing](docs/testing.md)
+* [Operating](docs/operating.md)
 
 ### Built-in services documentation
 
diff --git a/docs/operating.md b/docs/operating.md
new file mode 100644
index 0000000000000000000000000000000000000000..c8779c6dacb1b14daf9047b91f703a000c88e57c
--- /dev/null
+++ b/docs/operating.md
@@ -0,0 +1,17 @@
+Operating float
+===============
+
+This document covers operational aspects of running float, and how
+these operations can impact users of the services.
+
+# Unreachable hosts
+
+Configurations that depend on data from *other* hosts (e.g. the vpn
+service *tinc* needs to know about all hosts) can diverge when some
+hosts cannot be reached by float.
+
+In this situation there's effectively a *partition* between the
+configurations: care must be applied to make sure that they still make
+sense and the service behaves correctly. Once the hosts are reachable
+again then the next float run will bring the configurations back in
+sync.