Pudu programming language
Menu
Package

@chrismichaelps / pudu-lang-resilience

Resilience pipelines for Pudu: retry, circuit breaker, timeout, fallback, hedging, rate limiting, and chaos injection

0.1.0Apache-2.01

InstallClose

Runtime.md

Markdown31 lines1.1 KB

GitHub ↗

Runtime (seam)


type: seam capacity: BACKBONE tags: [seam, backbone]


Classification

Effect boundary between strategies and the world: Strategy.Runtime holds the pipeline's [[src/PuduLangResilience/Clock|clock]], [[src/PuduLangResilience/Randomizer|randomizer]], and [[src/PuduLangResilience/Telemetry|telemetry reporter]], and is handed to every strategy on attach and on each execution.

Adapters

  • System — Clock.system() and Randomizer.system(), the pipeline defaults.
  • Manual — Clock.ofManual, Randomizer.seeded, and Randomizer.fixed, used by every timing and chance test and available to package users.

Health

No strategy sleeps, reads time, or draws randomness except through the runtime. Timeouts and cancellable pauses still use Std.Concurrent.Cancel deadlines on the system clock ([[decisions/ADR-0003-cooperative-cancellation]]).

Referenced by

[[CHANGELOG]] · [[architecture/LANGUAGE]] · [[architecture/_MOC]] · [[decisions/ADR-0002-injected-runtime]] · [[grammar/pudu]] · [[seams/_MOC]] · [[src/PuduLangResilience/Clock]] · [[src/PuduLangResilience/Strategy]] · [[src/PuduLangResilience/_MOC]]