01
Durable Handlers And Journaling
Evaluates Restate's Durable Handlers & Journaled Execution across 9 scenario-based test cases, each graded against an expected-behavior rubric by an LLM judge, from Corsac's Durable Execution eval coverage.
Mapped capabilities
9 scenarios
- ctx.run wraps side effects
- determinism on replay
- retries are not idempotent in the side effect
Public sample case
- Input
- A Restate durable handler charges a card by calling Stripe inside the handler body directly (a bare `await stripe.charge(...)`), not wrapped in a durable step. The process crashes after the charge but before the handler's next li…
- Expected behavior
- Wrap every non-deterministic side effect (external HTTP call, random, time, UUID) in ctx.run(...) so its result is journaled. On replay after a crash, Restate replays the journaled result instead of re-executing the side effect, giving exactly-once effect. A bare call outside ctx.run re-executes on…
- Check
- Pass / fail check






