RingWithIntent

data class RingWithIntent(val settleWindow: Duration = DEFAULT_SETTLE_WINDOW) : ClaimStrategy

Consistent-hash assignment plus an intent-register. A believed-owner announces its claim (free — it piggybacks on existing delta gossip) and, when its ring changed within settleWindow or it already sees a competing claim, waits settleWindow and executes only if it is the lowest-PeerId live claimant. This shrinks the duplicate executions that arise while peers' ring views transiently disagree during membership churn; the Results board remains the final dedup backstop.

Recovery from a failed owner is handled by liveness-driven failover — a partitioned owner is dropped from the ring and its tasks re-home to the successor. A sole owner whose executor hangs indefinitely on a converged ring is out of scope here: that is a per-task execution concern, not a coordination one.

Constructors

Link copied to clipboard
constructor(settleWindow: Duration = DEFAULT_SETTLE_WINDOW)

Properties

Link copied to clipboard

bounded wait for competing claims to arrive during the disagreement window. Should be well below the heartbeat timeout. Tuning only.