type Op
import bend-kit-runner@0.13.0.1/runner.bend as Runnerimport Base
import bend-kit-retry@0.3.0.0/retry.bend as Retry
29# One durable transition. Each one is one journal record, appended before the state changes.
30# Select: the queue's select at now. Replay runs it at the same now, so it takes the same ticket.
31# Requeue: the attempt failed; it counts one failure. Defer: the breaker held the ticket back; no attempt ran.
32# Abandon: retry gave up at at; the running ticket becomes dead. Revive: a dead ticket is pending again at deadline, with a new budget.
33# Purge: the dead tickets abandoned before before are dropped. PurgeAll: every dead ticket is dropped.
34# Break: the breaker of target changed to state.
35type Op<-A: Data> is Data:
36 Enqueue{deadline: Nat, payload: A}
37 Select{now: Nat}
38 Complete{id: Nat}
39 Cancel{id: Nat}
40 Requeue{id: Nat, deadline: Nat}
41 Defer{id: Nat, deadline: Nat}
42 Abandon{id: Nat, why: Why, at: Nat}
43 Revive{id: Nat, deadline: Nat}
44 Purge{before: Nat}
45 PurgeAll{}
46 Break{target: String, state: Retry.State}