pub struct PoolRespawn {
promoted_label: String,
refilled_label: Option<String>,
phase: Phase,
}Expand description
Pool-respawn saga: fires once per promote, waits for the matching refill, then completes.
Fields§
§promoted_label: StringLabel of the window that was promoted (Step 1’s input). Held
for log correlation only — the saga doesn’t validate the
new pool label against this one. Kept on the struct so future
failure-mode logging (timeout / explicit fail) can include
“which promote did this saga belong to?” without rethreading.
LSD-2 — also surfaces in --diag sagas via input_snapshot.
refilled_label: Option<String>New pool label observed in Event::PoolWindowAdded (Step 2’s
output). None until refill is observed.
phase: PhaseImplementations§
Trait Implementations§
Source§impl Saga for PoolRespawn
impl Saga for PoolRespawn
Source§fn input_snapshot(&self) -> Value
fn input_snapshot(&self) -> Value
LSD-2 — record the promote’s source label for --diag sagas.
refilled_label is None at start (only known after Step 2’s
echo lands) so we don’t include it; the durable log captures
the inputs the saga was constructed with, not its evolving
state — that lives in step rows.
fn name(&self) -> &'static str
fn start(&mut self, _ctx: &SagaCtx) -> SagaAction
fn on_event(&mut self, event: &Event, ctx: &SagaCtx) -> SagaAction
Source§fn timeout(&self) -> Duration
fn timeout(&self) -> Duration
IssueCmd+wait cycles. Coordinator arms a timer when the saga
registers; if the saga is still in_flight when timeout()
elapses, it is force-failed (SagaFailed { reason: "saga timeout" }) and removed from the registry. Read more