Durable timers need recovery

A crashed server loses timers that existed only in memory. Decide whether to restore scheduled work and identify its durable recovery data.ΒΆ

Book basis: B333.ΒΆ

Failure it prevents

A scheduler restarts but pending deadlines silently disappear.ΒΆ

Our Effect 4.0.0 reading

DurableClock and DurableDeferred cooperate with WorkflowEngine. For an existing storage/alarm owner, keep scheduling in that adapter27. A Schedule loop alone is not persistence.ΒΆ

Source: packages/effect/src/workflow/DurableClock.ts, packages/effect/src/workflow/DurableDeferred.ts, packages/effect/src/workflow/WorkflowEngine.ts, packages/effect/src/Schedule.ts.ΒΆ

How to check

Crash before the deadline. Recover it from storage and test both wakeup and cancellation. This check is our proposal. The books do not prescribe it.ΒΆ

Continue with Durable work needs storage14, Restart must reconstruct known state9.ΒΆ

Connect this to the existing rat-stack guidance26.ΒΆ

Use the durability skill for the full review. Return to the durability index34.ΒΆ

Sources

  1. Gray II, James Edward; Tate, Bruce A. Designing Elixir Systems with OTP. Pragmatic Bookshelf, 2019.. Pragmatic Bookshelf. Build a Functional Core; Isolate Process Machinery in a Boundary; Customize Your Lifecycle; Big, Loud Worker-Bees; Add Persistence as a Boundary Service; Test the Boundary. Accessed 2026-10-23.
  2. Effect contributors. Effect 4.0.0. workflow/DurableClock.ts. Effect-TS. Pinned source for our Effect mapping, not a claim from the book. Accessed 2026-10-23.
  3. Effect contributors. Effect 4.0.0. workflow/DurableDeferred.ts. Effect-TS. Pinned source for our Effect mapping, not a claim from the book. Accessed 2026-10-23.
  4. Effect contributors. Effect 4.0.0. workflow/WorkflowEngine.ts. Effect-TS. Pinned source for our Effect mapping, not a claim from the book. Accessed 2026-10-23.
  5. Effect contributors. Effect 4.0.0. Schedule.ts. Effect-TS. Pinned source for our Effect mapping, not a claim from the book. Accessed 2026-10-23.

Last changed 2026-10-23 in 58dc623. Source on GitHub. Change log.

Linked from

  1. Agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.

    Durable timers need recovery β€” Persist scheduled intent when losing a worker must not lose its deadlines.

  2. Change log. What changed in the files served here, newest first.

    Durable timers need recovery β€” new page: docs(lore): land the durability wiki pages and bibliography

  3. Durability starts with a recovery record. A reading order for storage, replay, worker ownership, overload, and recovery tests.

    Durable timers need recovery: Persist scheduled intent when losing a worker must not lose its deadlines.ΒΆ

  4. Full agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
  5. Rat Stack lore | rat-stack. Short, source-grounded notes on the ideas and decisions behind rat-stack.

    Durable timers need recovery β€” Persist scheduled intent when losing a worker must not lose its deadlines.

  6. Restart must reconstruct known state. Execution recovery and state recovery need separate contracts.

    Continue with Replay needs stable inputs, Durable timers need recovery.ΒΆ

  7. Source change history (log.md). The generated change log as Markdown.

    Durable timers need recovery β€” new page: docs(lore): land the durability wiki pages and bibliography