Data Plane
The data plane handles the exchange of application data between Zenoh entities. It consists of two independent flows: pub/sub (push) and request/reply (query).
Push Flow (Pub/Sub)
Publisher Router(s) Subscriber
| | |
|─ PUSH(PUT) ───>|─── PUSH(PUT) ────>| publish value
| | |
|─ PUSH(DEL) ───>|─── PUSH(DEL) ────>| delete resource
A PUSH message delivers a value (PUT) or a deletion notification (DEL) to all matching subscribers. On the default transport it is carried inside a FRAME transport message; negotiated low-latency unicast may serialize the network message directly.
Query/Reply Flow
Querier Router(s) Queryable
| | |
|─ REQUEST ─────>|──── REQUEST ─────>| query
| | |
|<─ RESPONSE ────|<──── RESPONSE ────| zero or more replies
|<─ RESPONSE ────|<──── RESPONSE ────|
|<─ RESP_FINAL ──|<──── RESP_FINAL ──| end of replies
A REQUEST message queries all matching Queryables. Each Queryable responds with zero or more RESPONSE messages followed by a RESPONSE_FINAL that marks the end of its replies.
Message Nesting
Data-plane messages are nested across three layers:
Transport: FRAME (seq_num, channel) Network: PUSH / REQUEST / RESPONSE / RESPONSE_FINAL Data: PUT / DEL / QUERY / REPLY / ERR
In negotiated low-latency unicast mode, the transport layer may serialize the network message directly instead of wrapping it in FRAME/FRAGMENT.
See Message Reference for the complete byte-level reference.