RingStatePollingConfig
data class RingStatePollingConfig(val startAfterMs: Long = DEFAULT_START_AFTER_MS, val intervalMs: Long = DEFAULT_INTERVAL_MS)
When the caller falls back to reading the ring state instead of waiting for it.
Polling is switched off by passing a null config, never by zeroing a timing: every value here must be usable, and a non-positive one is rejected rather than quietly disabling the fallback.
Parameters
startAfterMs
how long a ring must go without a participant's ring status changing before polling begins. Kept well above the coordinator's websocket ping interval so a merely slow answer does not poll.
intervalMs
the gap between reads once polling has begun. Measured from the end of one read to the start of the next, so a slow read widens the gap rather than being absorbed by it.