Skip to content

feat(net): multi-relay failover, BBRv3 congestion, wider flow windows - #21

Merged
rldyourmnd merged 1 commit into
mainfrom
feat/transport-tuning
Sep 22, 2026
Merged

rldyourmnd merged 1 commit into
mainfrom
feat/transport-tuning

Conversation

@rldyourmnd

Copy link
Copy Markdown
Contributor

Summary

Internet best-practice pass on the transport layer (iroh production docs + quinn/noq tuning):

  • --relay repeatable on rds/rds-agent — iroh probes all configured relays, homes on lowest-latency, fails over automatically. Upstream recommends ≥2 dedicated relays for production.
  • BBRv3 congestion control (noq_proto::congestion::Bbr3Config) on both backends instead of loss-based Cubic — paced sends resist bufferbloat, keeping desktop interactive latency low when a sync transfer shares the path.
  • Wider flow windows: stream_receive_window 4 MiB / send_window 32 MiB (upstream defaults target ~100 Mbps × 100 ms) — large keyframes and sync chunk streams no longer stall on high-BDP links.
  • EndpointConfig.relay → relays: Vec<RelayUrl>; with_relays added; noq-proto promoted to direct dep (already in tree via iroh — zero new packages).
  • iroh's multipath keep-alive / path idle-timeout defaults preserved.

Test plan

  • build --locked, fmt, clippy ×4 lanes, full workspace tests — all green
  • Live: agent+client on two --relay flags (one dead) — failover works, multipath selects faster direct path
  • cargo-machete clean

Generated with Devin

Internet best-practice pass on the transport layer:

- --relay is now repeatable on rds and rds-agent. iroh probes all
  configured relays, homes on the lowest-latency one and fails over
  automatically — the upstream-recommended production topology is
  >=2 relays in different failure domains, now expressible.
- Congestion control: BBRv3 (noq_proto::congestion::Bbr3Config) on
  both backends instead of loss-based Cubic — paced sends resist
  bufferbloat, which is what keeps desktop interactive latency low
  when a sync transfer shares the path.
- stream_receive_window 4 MiB / send_window 32 MiB (upstream tunes
  for ~100 Mbps x 100 ms): a large keyframe or sync chunk stream no
  longer stalls on high-BDP links.
- EndpointConfig.relay -> relays: Vec<RelayUrl>; with_relay() kept,
  with_relays() added; noq-proto is now a direct dep (already in the
  tree via iroh — zero new packages).
- Verified live: agent+client on two --relay flags (one dead) —
  failover works, multipath selects the faster direct path.
@rldyourmnd
rldyourmnd merged commit e41e7c0 into main Sep 22, 2026
12 checks passed
@rldyourmnd
rldyourmnd deleted the feat/transport-tuning branch September 22, 2026 20:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant