R
For RestateAI Platform

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]

Sample tests· showing 3 of 9

#InputExpected behaviorCheck
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

RestateRestate customers

Works with

Related evals

Run this eval in your workspace

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