Request lifetime is not durability
A bounded request pass and a durable recovery record solve different problems. On HTTP Workers, waitUntil extends execution for up to 30 seconds after response or disconnect; that allowance is shared.¶
Failure it prevents
Three 20-second attempts plus delays need more time than the post-response allowance, so background delivery is cut off without recovery.¶
Our Effect 4.0.0 reading
Use one deadline for the pass and cap every attempt at remaining time. Context.Reference can hold an intentional default budget. Do not cache an absolute deadline in it. Persist an undelivered marker for independent redrive14.¶
Source: packages/effect/src/Context.ts, packages/effect/src/Effect.ts.¶
How to check
Use a 25-second example budget. Cancel post-response work, then redrive the persisted marker with the same operation identity and prove duplicate safety. This check is our proposal. The books do not prescribe it.¶
Continue with Timeouts bound waiting20, Retry needs idempotent effects14.¶
Connect this to the existing rat-stack guidance23.¶
Use the durability skill for the full review. Return to the durability index34.¶
Sources
- Nygard, Michael T. Release It!: Design and Deploy Production-Ready Software. Pragmatic Bookshelf, 2007.. Pragmatic Bookshelf. §4.4 Unbounded Result Sets; Chapter 5 Stability Patterns: §5.1 Timeouts, §5.2 Circuit Breaker, §5.3 Bulkheads, §5.4 Steady State, §5.5 Fail Fast, §5.6 Handshaking, §5.7 Test Harness, §5.8 Decoupling Middleware. Accessed 2026-10-23.
- Reis, Joe; Housley, Matt. Fundamentals of Data Engineering. O’Reilly.. O’Reilly. Part II, Chapter 5: Message Queues; DataOps considerations; Incident Response. Accessed 2026-10-23.
- Effect contributors. Effect 4.0.0. Context.ts. Effect-TS. Pinned source for our Effect mapping, not a claim from the book. Accessed 2026-10-23.
- Effect contributors. Effect 4.0.0. Effect.ts. Effect-TS. Pinned source for our Effect mapping, not a claim from the book. Accessed 2026-10-23.
- Cloudflare Workers Context: waitUntil. Cloudflare. HTTP-triggered waitUntil extends execution for up to 30 seconds after response or disconnect; calls share this allowance. This is a platform reference, not book lore. Accessed 2026-10-23.
Last changed 2026-10-23 in 58dc623. Source on GitHub. Change log.
Linked from
- Agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
Request lifetime is not durability — Worker waitUntil has a shared post-response allowance; required work needs a durable marker and redrive.
- Change log. What changed in the files served here, newest first.
Request lifetime is not durability — new page: docs(lore): land the durability wiki pages and bibliography
- durability. Keep a rat-stack app standing when a provider, pool, or dependency slows down or a worker dies. Use at any I/O boundary, connection pool, provider call, shared waiter, fan-out, flag, gate, or work that can outlive a request, or when asked "what happens when this is slow", "add a timeout", "make this durable", or "what survives a crash".
Request lifetime is not durability: waitUntil work needs a durable marker and redrive.¶
- Durability starts with a recovery record. A reading order for storage, replay, worker ownership, overload, and recovery tests.
Request lifetime is not durability: Worker waitUntil has a shared post-response allowance; required work needs a durable marker and redrive.¶
- Full agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
- Rat Stack lore | rat-stack. Short, source-grounded notes on the ideas and decisions behind rat-stack.
Request lifetime is not durability — Worker waitUntil has a shared post-response allowance; required work needs a durable marker and redrive.
- Source change history (log.md). The generated change log as Markdown.
Request lifetime is not durability — new page: docs(lore): land the durability wiki pages and bibliography