Skip to content

Latest commit

 

History

History
47 lines (34 loc) · 1.46 KB

File metadata and controls

47 lines (34 loc) · 1.46 KB

Service discovery design

The current HTTP clients use static configuration first and can fall back to active subnet scanning when server_host is unset. SCIOT-032 will add mDNS/Zeroconf discovery before subnet scanning.

Discovery order

Clients should resolve the server in this deterministic order:

  1. Explicit static server_host and server_port.
  2. mDNS/Zeroconf lookup for _sciot._tcp.local..
  3. Optional current subnet scan fallback.
  4. Local-only mode when no server is found.

Static configuration must always win. This keeps production deployments stable and makes discovery opt-in for local labs and demos.

Proposed configuration

discovery:
  enabled: true
  method: mdns
  service_name: _sciot._tcp.local.
  timeout_seconds: 3.0
  allow_subnet_scan_fallback: true

Server advertisement should be optional and disabled safely when Zeroconf is not installed or the network blocks multicast.

Multiple servers

If multiple SCIoT servers are discovered, the client should choose deterministically. A safe first rule is:

  1. prefer matching model/profile metadata when advertised;
  2. prefer the lowest advertised priority value;
  3. sort by host and port as a final deterministic tie-break.

Troubleshooting notes

mDNS/Zeroconf requires local multicast support. Some enterprise Wi-Fi networks, VPNs, guest VLANs, and container networks block it. In those environments, operators should use static server_host or explicitly enable the subnet-scan fallback.