<titledata-rh="true">Network Domains | Waku Documentation</title><metadata-rh="true"name="viewport"content="width=device-width,initial-scale=1"><metadata-rh="true"name="twitter:card"content="summary_large_image"><metadata-rh="true"property="og:url"content="https://docs.waku.org/learn/concepts/network-domains"><metadata-rh="true"property="og:locale"content="en_GB"><metadata-rh="true"name="docusaurus_locale"content="en-GB"><metadata-rh="true"name="docsearch:language"content="en-GB"><metadata-rh="true"name="keywords"content="waku, web3"><metadata-rh="true"name="image"content="https://docs.waku.org/_og/3baa0c483ba89a797e7844c98d3e6254791b4750.png"><metadata-rh="true"name="docusaurus_version"content="current"><metadata-rh="true"name="docusaurus_tag"content="docs-default-current"><metadata-rh="true"name="docsearch:version"content="current"><metadata-rh="true"name="docsearch:docusaurus_tag"content="docs-default-current"><metadata-rh="true"property="og:title"content="Network Domains | Waku Documentation"><metadata-rh="true"name="description"content="Waku is a unified and cohesive entity that offers a rich ecosystem with three distinct network interaction domains. These domains serve specialised purposes and contribute to the robust functionality of Waku, forming its foundation."><metadata-rh="true"property="og:description"content="Waku is a unified and cohesive entity that offers a rich ecosystem with three distinct network interaction domains. These domains serve specialised purposes and contribute to the robust functionality of Waku, forming its foundation."><linkdata-rh="true"rel="icon"href="/theme/image/favicon.ico"><linkdata-rh="true"rel="canonical"href="https://docs.waku.org/learn/concepts/network-domains"><linkdata-rh="true"rel="alternate"href="https://docs.waku.org/learn/concepts/network-domains"hreflang="en-GB"><linkdata-rh="true"rel="alternate"href="https://docs.waku.org/learn/concepts/network-domains"hreflang="x-default"><linkrel="alternate icon"type="image/png"href="/theme/image/favicon.png">
<h2class="anchor anchorWithHideOnScrollNavbar_WYt5"id="discovery-domain">Discovery domain<ahref="#discovery-domain"class="hash-link"aria-label="Direct link to Discovery domain"title="Direct link to Discovery domain"></a></h2>
<p>Peer discovery in Waku facilitates locating other nodes within the network. As a modular protocol, Waku incorporates various discovery mechanisms, such as <ahref="/learn/concepts/discv5">Discv5</a> and <ahref="/learn/concepts/peer-exchange">Peer Exchange</a>. These mechanisms allow developers to choose the most suitable option(s) for their specific use cases and user environments, including mobile phones, desktop browsers, servers, and more.</p>
<h2class="anchor anchorWithHideOnScrollNavbar_WYt5"id="gossip-domain">Gossip domain<ahref="#gossip-domain"class="hash-link"aria-label="Direct link to Gossip domain"title="Direct link to Gossip domain"></a></h2>
<p>GossipSub derives its name from the practice within Pub/Sub networks where peers gossip about the messages they have encountered, thus establishing a message delivery network.</p>
<p>Waku employs gossiping through <ahref="/learn/concepts/protocols#relay">Relay</a> to distribute messages across the network. Additionally, Waku introduces <ahref="/learn/concepts/protocols#rln-relay">RLN Relay</a>, an experimental mechanism that combines privacy preservation and economic spam protection.</p>
<h2class="anchor anchorWithHideOnScrollNavbar_WYt5"id="requestresponse-domain">Request/response domain<ahref="#requestresponse-domain"class="hash-link"aria-label="Direct link to Request/response domain"title="Direct link to Request/response domain"></a></h2>
<p>Waku provides a set of protocols to optimise its performance in resource-limited environments like low bandwidth or mostly offline scenarios for multiple purposes.</p>
<ul>
<li><ahref="/learn/concepts/protocols#store">Store</a> enables the retrieval of historical messages.</li>
<li><ahref="/learn/concepts/protocols#filter">Filter</a> efficiently retrieves a subset of messages to conserve bandwidth.</li>
<li><ahref="/learn/concepts/protocols#light-push">Light Push</a> facilitates message publication for nodes with limited bandwidth and short connection windows.</li>
</ul>
<h2class="anchor anchorWithHideOnScrollNavbar_WYt5"id="overview-of-protocol-interaction">Overview of protocol interaction<ahref="#overview-of-protocol-interaction"class="hash-link"aria-label="Direct link to Overview of protocol interaction"title="Direct link to Overview of protocol interaction"></a></h2>
<p>Here is a diagram illustrating the interaction between different protocols within the Waku Network.</p>
<p>The Pub/Sub topic <code>pubtopic1</code> serves as a means of routing messages (the network employs a default Pub/Sub topic) and indicates that it is subscribed to messages on that topic for a relay. Node D serves as a <code>Store</code> and is responsible for storing messages.</p>
<ol>
<li>Node A creates a WakuMessage <code>msg1</code> with <ahref="/learn/concepts/content-topics">Content Topic</a><code>contentTopic1</code>.</li>
<li>Node F requests to get messages filtered by Pub/Sub topic <code>pubtopic1</code> and Content Topic <code>contentTopic1</code>. Node D subscribes F to this filter and will forward messages that match that filter in the future.</li>
<li>Node A publishes <code>msg1</code> on <code>pubtopic1</code>. The message is sent from Node A to Node B and then forwarded to Node D.</li>
<li>Node D, upon receiving <code>msg1</code>, stores the message for future retrieval by other nodes and forwards it to Node C.</li>
<li>Node D also pushes <code>msg1</code> to Node F, informing it about the arrival of a new message.</li>
<li>At a later time, Node E comes online and requests messages matching <code>pubtopic1</code> and <code>contentTopic1</code> from Node D. Node D responds with <code>msg1</code> and potentially other messages that match the query.</li>