diff --git a/sdk-api-kotlin/src/main/kotlin/dev/restate/sdk/kotlin/ContextImpl.kt b/sdk-api-kotlin/src/main/kotlin/dev/restate/sdk/kotlin/ContextImpl.kt index 529d7bd9..e1b5a0ea 100644 --- a/sdk-api-kotlin/src/main/kotlin/dev/restate/sdk/kotlin/ContextImpl.kt +++ b/sdk-api-kotlin/src/main/kotlin/dev/restate/sdk/kotlin/ContextImpl.kt @@ -34,6 +34,9 @@ internal constructor( internal val contextSerdeFactory: SerdeFactory, ) : WorkflowContext { + internal val random: RestateRandom = + RestateRandom(handlerContext.request().invocationId().toRandomSeed()) + override fun key(): String { return this.handlerContext.objectKey() } @@ -191,7 +194,7 @@ internal constructor( } override fun random(): RestateRandom { - return RestateRandom(handlerContext.request().invocationId().toRandomSeed()) + return this.random } override fun promise(key: DurablePromiseKey): DurablePromise { diff --git a/sdk-api/src/main/java/dev/restate/sdk/ContextImpl.java b/sdk-api/src/main/java/dev/restate/sdk/ContextImpl.java index 408795fa..266f5048 100644 --- a/sdk-api/src/main/java/dev/restate/sdk/ContextImpl.java +++ b/sdk-api/src/main/java/dev/restate/sdk/ContextImpl.java @@ -36,11 +36,13 @@ class ContextImpl implements ObjectContext, WorkflowContext { private final HandlerContext handlerContext; private final Executor serviceExecutor; private final SerdeFactory serdeFactory; + private final RestateRandom random; ContextImpl(HandlerContext handlerContext, Executor serviceExecutor, SerdeFactory serdeFactory) { this.handlerContext = handlerContext; this.serviceExecutor = serviceExecutor; this.serdeFactory = serdeFactory; + this.random = new RestateRandom(this.request().invocationId().toRandomSeed()); } static void checkNotInsideRun() { @@ -275,7 +277,7 @@ public void reject(String reason) { @Override public RestateRandom random() { - return new RestateRandom(this.request().invocationId().toRandomSeed()); + return this.random; } @Override