virtualObjectHandle

@ApiStatus.Experimental
open fun <SVC> virtualObjectHandle(clazz: Class<SVC>, key: String): ClientServiceHandle<SVC>

EXPERIMENTAL API: Advanced API to invoke a Restate Virtual Object from the ingress with full control.

Create a handle that provides advanced invocation capabilities including:

  • Async request handling with CompletableFuture
  • Invocation options such as idempotency keys
  • Fire-and-forget requests via send()
  • Access to full Response metadata

Client client = Client.connect("http://localhost:8080");

// Use call() with method reference and wait for the result
Response<Integer> response = client.virtualObjectHandle(Counter.class, "my-counter")
  .call(Counter::increment);

// Use send() for one-way invocation without waiting
SendResponse<Integer> sendResponse = client.virtualObjectHandle(Counter.class, "my-counter")
  .send(Counter::increment);

For simple synchronous request-response interactions, consider using virtualObject instead.

Return

a handle to invoke the virtual object with advanced options

Parameters

clazz

the virtual object class annotated with VirtualObject

key

the key identifying the specific virtual object instance