R
For RestateAI Platform

Durable Timers And Scheduling

Restate · Restate

Durable Execution — Restate

Restate evals — Durable Timers & Scheduling (relift v3 InfraRed)

About Restate

Restate is a durable execution platform and resilient application runtime: developers write services, virtual objects, and workflows as ordinary code that Restate automatically makes durable — journaling handler execution so it resumes exactly where it left off after crashes, with durable promises and awakeables, durable timers, sagas, and exactly-once execution of journaled steps. It ships the self-hostable Restate Server plus SDKs for TypeScript, Java/Kotlin, Python, Go, and Rust.

Employees

[REQUIRES-VERIFICATION] ~30–50

Industry

Developer Infrastructure / Durable Execution

Headquarters

[REQUIRES-VERIFICATION]

Sample tests· showing 3 of 9

#InputExpected behaviorCheck
01

A reminder handler must fire 24 hours after an event. The integrator schedules an OS cron or in-process setTimeout to call back.

Use ctx.sleep(24h) inside the durable handler: the invocation suspends and Restate resumes it via a durable timer after the delay, surviving restarts and redeploys with no external scheduler. An in-process timer dies with the process; a cron is a separate system to keep consistent. Keep the delay d…

Pass / FailAi Platformhigh
02

A daily reconciliation must run every 24h forever. The integrator writes a workflow that ctx.sleep(24h) then recurses into itself by re-invoking by the same id.

Model recurrence as a self-rescheduling loop: each run does its work, then issues a delayed send to the NEXT run (a fresh id or a stepped id) — not a self-call with the same id (run-once would attach to the existing completed run, not start a new one). Keep each occurrence as its own invocation so …

Pass / FailAi Platformmedium
03

An operator wants to enqueue a one-way invocation to run in 1 hour, without the caller awaiting it (fire-and-forget delayed send).

Use a delayed one-way send (ctx.send / invoke with a delay) so Restate schedules the target handler to start after the delay, durably and without the caller blocking. This is distinct from ctx.sleep (which suspends the current handler). Pick send-with-delay for decoupled scheduling, ctx.sleep for i…

Pass / FailAi Platformhigh

How this eval is graded

Grade against expected.ideal_behavior and expected.rubric. Per-criterion pass requires mean >= 4.0 and no criterion below 3.

Rubric criteria

  • Restate
  • Ai Platform
  • Durable Timers And Scheduling

Recommended for

RestateRestate customers

Works with

Related evals

Run this eval in your workspace

Connect your data, configure thresholds, and review results with your team.