Key characteristics
State is only available for Virtual Objects and Workflows. Scope & retention:- For Virtual Objects: State is scoped per object key and retained indefinitely. It is persisted and shared across all invocations for that object until explicitly cleared.
- For Workflows: State is scoped per workflow execution (workflow ID) and retained only for the duration of the workflow’s configured retention time.
- Exclusive handlers (e.g.,
run()
in workflows) can read and write state. - Shared handlers can only read state and cannot mutate it.
List all state keys
To retrieve all keys for which the current Virtual Object has stored state:Get state value
To read a value by key.Set state value
To write or update a value:Clear state key
To delete a specific key:Clear all state keys
To remove all stored state for the current Virtual Object:Advanced: Eager vs. lazy state loading
Restate supports two modes for loading state in handlers:Eager state (default)
- How it works: State is automatically sent with the request when invoking a handler
- Benefits: State is available immediately when the handler starts executing
- Behavior: All reads and writes to state are local to the handler execution
- Best for: Small to medium state objects that are frequently accessed
Lazy state
- How it works: State is fetched on-demand on
get
calls from the Restate Server - Benefits: Reduces initial request size and memory usage
- Setup: Enable lazy state in the service or handler configuration
- Best for: Large state objects that aren’t needed in every handler execution