Durable Promises And Awakeables
Restate · Restate
Durable Execution — Restate
Restate evals — Durable Promises & Awakeables (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]
Website
restate.devSample tests· showing 3 of 9
| # | Input | Expected behavior | Check |
|---|---|---|---|
| 01 | A handler creates an awakeable and must hand its id to a third-party callback so the third party can resolve it later. The handler stores the id only in a local variable and awaits. | Create the awakeable with ctx.awakeable(), then durably hand its id to the external system inside a journaled step (the call that registers the callback) BEFORE awaiting it — so a crash between creation and handoff does not orphan a promise nobody can resolve. The id is the rendezvous token; treat … | Pass / FailAi Platformcritical |
| 02 | An external approval system can approve or deny. The integrator resolves the awakeable with a payload on approval but, on denial, simply never resolves it. | Resolve the awakeable with a payload on success and REJECT it with an error on denial (ctx-side, the awaiting handler then throws). Never leave an awakeable unresolved on the failure path — the awaiting invocation would hang until timeout. Model both outcomes explicitly so the handler can branch on… | Pass / FailAi Platformhigh |
| 03 | An awakeable is resolved with an arbitrary JSON shape on one side and deserialized into a strict type on the awaiting side, which differs. | Treat the awakeable payload as a typed contract shared between resolver and awaiter (a versioned schema). Validate on receipt and fail with a TerminalError on schema mismatch rather than silently coercing. Keep the payload small and reference large data by storage key. | Pass / FailAi Platformmedium |
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 Promises And Awakeables
Recommended for
Works with
Related evals
Run this eval in your workspace
Connect your data, configure thresholds, and review results with your team.