Reachability rationale

We classify host+path reachability using a passive, best‑effort heuristic derived from Kubernetes resources observed by informers. We do not send active probes.

Why passive only

  • No extra traffic or side effects in clusters
  • Simpler operations; no probe scheduling or timeouts
  • Predictable resource usage

Heuristic summary

  • If Endpoints or EndpointSlice state for the backend service has Total > 0 → reachable
  • If Endpoints or EndpointSlice state exists but Total == 0 → unreachable
  • Otherwise → unknown

Implications

  • Results can lag behind reality; informer latency applies
  • Unknown does not mean down; it means insufficient evidence
  • Active probes could improve certainty but add cost and complexity

References

  • Code: internal/reachability/reachability.go
  • Spec: DOC-004; DECISION-002 (trade‑off rationale)