# Restart must reconstruct known state

> For agents: start with the [agent guide](https://ratstack.sh/llms.txt). Every page is Markdown by default; add `Accept: text/html` for HTML.

Free workshop: [Build Agent Loops That Never Stop Shipping](/tokenmaxx#interested).

Letting a worker fail is useful when recovery returns it to a known state. Preserve indispensable recovery data; rebuild disposable state.

Book basis: [B1](/lore/durability-bibliography#b1-erlang-and-otp-in-action), [B2](/lore/durability-bibliography#b2-elixir-in-action), [B3](/lore/durability-bibliography#b3-designing-elixir-systems-with-otp).

## Failure it prevents

A fresh worker reuses inconsistent state or forgets critical coordination data.

## Our Effect 4.0.0 reading

`Activity` results and `WorkflowEngine` can support reconstruction with persistent storage. A new [fiber](/lore/concurrent-work-needs-an-owner) does not restore old local variables or [machine](/lore/lifecycles-are-machines) memory.

Source: `packages/effect/src/workflow/Activity.ts`, `packages/effect/src/workflow/WorkflowEngine.ts`, `packages/effect/src/Fiber.ts`.

## How to check

Recover from an incomplete step using durable authority. Check behavior rather than merely checking that the worker is running. This check is our proposal. The books do not prescribe it.

Continue with [Replay needs stable inputs](/lore/replay-needs-stable-inputs), [Durable timers need recovery](/lore/durable-timers-need-recovery).

Connect this to [the existing rat-stack guidance](/lore/lifecycles-are-machines).

Use [the durability skill](/skills/durability) for the full review. Return to [the durability index](/lore/durability).

## Sources

1. [Logan, Martin; Merritt, Eric; Carlsson, Richard. Erlang and OTP in Action.](https://www.manning.com/books/erlang-and-otp-in-action)
   Manning. The Erlang/OTP Platform: Let It Crash; process isolation; §4.2.2 supervisor restart strategy. Accessed 2026-10-23.

2. [Jurić, Saša. Elixir in Action, Third Edition. Manning, 2024.](https://www.manning.com/books/elixir-in-action-third-edition)
   Manning. §5.4.3 Shared-Nothing Concurrency; Chapters 8–9, fault tolerance and supervision; Other Use Cases for ETS. Accessed 2026-10-23.

3. [Gray II, James Edward; Tate, Bruce A. Designing Elixir Systems with OTP. Pragmatic Bookshelf, 2019.](https://pragprog.com/titles/jgotp/designing-elixir-systems-with-otp/)
   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.

4. [Effect contributors. Effect 4.0.0. workflow/Activity.ts](https://github.com/Effect-TS/effect/blob/67ba4e46a11ccda0b6761578bfd22c04ae00167d/packages/effect/src/workflow/Activity.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. workflow/WorkflowEngine.ts](https://github.com/Effect-TS/effect/blob/67ba4e46a11ccda0b6761578bfd22c04ae00167d/packages/effect/src/workflow/WorkflowEngine.ts)
   Effect-TS. Pinned source for our Effect mapping, not a claim from the book. Accessed 2026-10-23.

6. [Effect contributors. Effect 4.0.0. Fiber.ts](https://github.com/Effect-TS/effect/blob/67ba4e46a11ccda0b6761578bfd22c04ae00167d/packages/effect/src/Fiber.ts)
   Effect-TS. Pinned source for our Effect mapping, not a claim from the book. Accessed 2026-10-23.

## Linked from

- Agent guide → An Effect stack so pure (aspirational) Kit Langton will blush. → [Read page](https://ratstack.sh/llms.txt)

- Change log → What changed in the files served here, newest first. → [Read page](https://ratstack.sh/log)

- Durability starts with a recovery record → A reading order for storage, replay, worker ownership, overload, and recovery tests. → [Read page](https://ratstack.sh/lore/durability)

- Durable timers need recovery → Persist scheduled intent when losing a worker must not lose its deadlines. → [Read page](https://ratstack.sh/lore/durable-timers-need-recovery)

- Full agent guide → An Effect stack so pure (aspirational) Kit Langton will blush. → [Read page](https://ratstack.sh/llms-full.txt)

- Lifecycles are machines → XState owns finite lifecycle states while declared Effect actors own side effects. → [Read page](https://ratstack.sh/lore/lifecycles-are-machines)

- Rat Stack lore | rat-stack → Short, source-grounded notes on the ideas and decisions behind rat-stack. → [Read page](https://ratstack.sh/lore)

- Source change history (log.md) → The generated change log as Markdown. → [Read page](https://ratstack.sh/log.md)

- Supervision chooses what restarts → Restart policy follows dependency shape and bounds repeated recovery. → [Read page](https://ratstack.sh/lore/supervision-is-a-recovery-policy)
