Virtual Objects And State
Restate · Restate
Durable Execution — Restate
Restate evals — Virtual Objects & State (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 | Two concurrent requests both invoke exclusive handlers on virtual object `cart/user-42` to decrement inventory. The integrator assumes they can run in parallel and adds a mutex in application code. | Rely on Restate's per-key single-writer guarantee: exclusive handlers on the same virtual object key are serialized by the runtime, so concurrent invocations on `cart/user-42` queue and run one at a time. Do not add an application-level lock — the object key IS the concurrency boundary. State reads… | Pass / FailAi Platformcritical |
| 02 | A virtual object exposes a `getBalance` handler declared shared so reads can run concurrently with each other, but the integrator writes state inside it. | Shared handlers run concurrently and must NOT mutate object state — they get read access to a consistent view but writing from a shared handler violates the single-writer model and races with the exclusive writer. Keep writes in exclusive handlers only; use shared handlers for reads / queries. | Pass / FailAi Platformhigh |
| 03 | An integrator tries to 'spin up' a virtual object instance before sending it traffic and 'shut it down' when idle, modeling it like a stateful pod. | A virtual object is addressed by key on demand — there is no provisioning / boot step. Invoking a handler on a new key just works; state for an unused key is simply absent. Do not model objects as long-lived processes you start and stop; model them as keyed state + serialized handlers that exist wh… | 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
- Virtual Objects And State
Recommended for
Works with
Related evals
Run this eval in your workspace
Connect your data, configure thresholds, and review results with your team.