# Every task needs an owner

> 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).

Managed worker abstractions make lifecycle policy visible. A task that escapes its owner also escapes that owner’s shutdown and failure handling.

> Elixir can’t manage what it doesn’t know about.

Source: [Q04](/lore/durability-bibliography#q04); [B3](/lore/durability-bibliography#b3-designing-elixir-systems-with-otp).

## Failure it prevents

A request returns but unobserved child work fails or holds resources indefinitely.

## Our Effect 4.0.0 reading

`Effect.forkScoped` and `FiberSet` attach work to a [Scope](/lore/scopes-own-resources). `Effect.forkDetach` detaches the [fiber](/lore/concurrent-work-needs-an-owner) from its parent. The runtime can still stop it. Add recovery policy separately.

Source: `packages/effect/src/Effect.ts`, `packages/effect/src/Scope.ts`, `packages/effect/src/FiberSet.ts`.

## How to check

Interrupt the owner. Verify child completion or interruption, resource release, and the reported outcome. This check is our proposal. The books do not prescribe it.

Continue with [Supervision chooses what restarts](/lore/supervision-is-a-recovery-policy), [Durable work needs storage](/lore/durable-work-needs-storage).

Connect this to [the existing rat-stack guidance](/lore/concurrent-work-needs-an-owner).

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

## Sources

1. [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.

2. [Effect contributors. Effect 4.0.0. Effect.ts](https://github.com/Effect-TS/effect/blob/67ba4e46a11ccda0b6761578bfd22c04ae00167d/packages/effect/src/Effect.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. Scope.ts](https://github.com/Effect-TS/effect/blob/67ba4e46a11ccda0b6761578bfd22c04ae00167d/packages/effect/src/Scope.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. FiberSet.ts](https://github.com/Effect-TS/effect/blob/67ba4e46a11ccda0b6761578bfd22c04ae00167d/packages/effect/src/FiberSet.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)

- Concurrent work needs an owner and a bound → Limit active work, retain result order, and stop child work when its owning lifetime ends. → [Read page](https://ratstack.sh/lore/concurrent-work-needs-an-owner)

- 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 work needs storage → A restarted worker cannot recover intent that existed only in memory. → [Read page](https://ratstack.sh/lore/durable-work-needs-storage)

- Effect Meetup SF 2023: Why Effect? → Michael Arnaldi introduces Effect as a shared runtime for production TypeScript concerns. → [Read page](https://ratstack.sh/lore/effect-meetup-sf-2023-why-effect-michael-arnaldi)

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

- 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)
