diff --git a/src/protocol.md b/src/protocol.md index f55ea0b..d038087 100644 --- a/src/protocol.md +++ b/src/protocol.md @@ -1,8 +1,9 @@ # Syndicate Protocol Actors that share a local [scope](./glossary#scope) can communicate directly. To communicate -further afield, scopes are *connected* using [relay actors](./glossary.md#relay). Relays allow -*indirect* communication: distant entities can be addressed as if they were local. +further afield, scopes are *connected* using [relay +actors](./glossary.md#relay).[^analogy-to-subnets] Relays allow *indirect* communication: +distant entities can be addressed as if they were local. Relays exchange *Syndicate Protocol* messages across a [transport](./glossary.md#transport). A *transport* is the underlying medium connecting one relay to its counterparts on a given @@ -908,6 +909,9 @@ def instantiate(template, bindings): #### Notes +[^analogy-to-subnets]: Strictly speaking, scope *subnets* are connected by relay actors. The + situation is directly analogous to IP subnets being connected by IP routers. + [^relaying-over-syndicate]: In fact, it makes perfect sense to run the relay protocol between actors that are *already connected* in some scope: this is like running a VPN, tunnelling IP over IP. A variation of the Syndicate Protocol like this gives [federated