- Reliable many-to-many communication over wide area networks is challenging, requiring trade-offs between reliability, scalability, and resource consumption.
- zenoh's protocol has two layers: a session protocol for 1-to-1 communication with best-effort and reliable channels, and a routing protocol to propagate data from producers to consumers.
- Hop-to-hop reliability is scalable and reliable under stable infrastructure but may lose data during topology changes.
- Stronger reliability options include end-to-end (no loss during topology changes but less scalable) and first-router-to-last-router (reduces pressure on endpoints).
- Flow control separates control over resending (receiver), memory usage (sender/infrastructure), and message dropping (sender congestion control).
- Configuration examples show reliability set on the subscriber side and congestion control per sample using the Python API.
- zenoh allows balancing application needs with system constraints, protecting nodes from asymmetries and maintaining strong guarantees in dynamic networks.