#[non_exhaustive]pub enum ContentionKind {
Show 18 variants
UseClaimResumedExecution,
NotAResumedExecution,
ExecutionNotLeaseable,
LeaseConflict,
InvalidClaimGrant,
ClaimGrantExpired,
NoEligibleExecution,
WaitpointNotFound,
WaitpointPendingUseBufferScript,
StaleGraphRevision,
ExecutionNotActive {
terminal_outcome: String,
lease_epoch: String,
lifecycle_phase: String,
attempt_id: String,
},
ExecutionNotEligible,
ExecutionNotInEligibleSet,
ExecutionNotReclaimable,
NoActiveLease,
RateLimitExceeded,
ConcurrencyLimitExceeded,
RetryExhausted,
}Expand description
Contention sub-kinds (retryable per RFC-010 §10.7). Caller should re-dispatch or re-read and retry.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
UseClaimResumedExecution
Re-dispatch to claim_resumed_execution.
NotAResumedExecution
Re-dispatch to claim_execution.
ExecutionNotLeaseable
State changed since grant. Request new grant.
LeaseConflict
Another worker holds lease. Request a different execution.
InvalidClaimGrant
Grant missing/mismatched. Request new grant.
ClaimGrantExpired
Grant TTL elapsed. Request new grant.
NoEligibleExecution
No execution currently available.
WaitpointNotFound
Waitpoint may not exist yet. Retry with backoff.
WaitpointPendingUseBufferScript
Route to buffer_signal_for_pending_waitpoint.
StaleGraphRevision
Graph revision changed. Re-read adjacency, retry.
ExecutionNotActive
Execution is not in active state (lease superseded, etc.)
Carries the Lua-side detail payload for replay reconciliation.
ExecutionNotEligible
State changed. Scheduler skips.
ExecutionNotInEligibleSet
Removed by another scheduler.
ExecutionNotReclaimable
Already reclaimed/cancelled. Skip.
NoActiveLease
Target has no active lease (already revoked/expired/unowned).
RateLimitExceeded
Window full; caller should backoff retry_after_ms.
ConcurrencyLimitExceeded
Concurrency cap hit.
RetryExhausted
Returned after 3 attempts of a SERIALIZABLE transaction in
Postgres (cancel_flow, deliver_signal, suspend). Caller
falls back to the appropriate reconciler.
Classified Retryable via the blanket Contention(_) arm so
consumer retry-loops don’t treat it as terminal; the
reconciler backstop catches repeat exhaustion.
Trait Implementations§
Source§impl Clone for ContentionKind
impl Clone for ContentionKind
Source§fn clone(&self) -> ContentionKind
fn clone(&self) -> ContentionKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more