Service Invocation And Idempotency
Restate · Restate
Durable Execution — Restate
Restate evals — Service Invocation & Idempotency (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 | Service A needs Service B's result before continuing. The integrator calls B over raw HTTP (fetch) instead of ctx.call, losing durability of the call. | Invoke B with ctx.call(...) so the call and its result are journaled: on A's replay the result is reused, and the call participates in Restate's durability and tracing. A raw fetch is a non-durable side effect that re-executes on replay unless wrapped in ctx.run, and loses cross-service durable lin… | Pass / FailAi Platformhigh |
| 02 | Service A must trigger B but not wait for B's result. The integrator uses ctx.call and awaits it anyway, coupling A's latency to B. | Use a one-way send (ctx.send) for fire-and-forget: Restate durably enqueues the invocation to B and returns immediately, so A does not block on B and B still runs durably exactly-once. Reserve ctx.call (awaited) for when A genuinely needs B's result. Sends are still durable — not lost on crash. | Pass / FailAi Platformmedium |
| 03 | An external client calls a Restate service through the ingress and retries on timeout without setting an idempotency key, risking a duplicate invocation. | Set the idempotency key (the documented Restate idempotency key header / option) on the ingress invocation so a client retry dedupes to the original invocation and returns its result rather than starting a second run. Derive the key from the business request id. Within its retention window the key … | Pass / FailAi Platformcritical |
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
- Service Invocation And Idempotency
Recommended for
Works with
Related evals
Run this eval in your workspace
Connect your data, configure thresholds, and review results with your team.