Skip to content

Commit 143af58

Browse files
Rename Awaitable -> DurableFuture (#474)
1 parent 5d6e24e commit 143af58

File tree

26 files changed

+375
-313
lines changed

26 files changed

+375
-313
lines changed

examples/src/main/java/my/restate/sdk/examples/LoanWorkflow.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public String run(WorkflowContext ctx, LoanRequest loanRequest) {
6969
ctx.set(STATUS, Status.WAITING_HUMAN_APPROVAL);
7070

7171
// 3. Wait human approval
72-
boolean approved = ctx.promise(HUMAN_APPROVAL).awaitable().await();
72+
boolean approved = ctx.promise(HUMAN_APPROVAL).future().await();
7373
if (!approved) {
7474
LOG.info("Not approved");
7575
ctx.set(STATUS, Status.NOT_APPROVED);

sdk-api-gen/src/main/resources/templates/Client.hbs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{{#if originalClassPkg}}package {{originalClassPkg}};{{/if}}
22

3-
import dev.restate.sdk.Awaitable;
4-
import dev.restate.sdk.CallAwaitable;
3+
import dev.restate.sdk.CallDurableFuture;
54
import dev.restate.sdk.Context;
65
import dev.restate.sdk.types.StateKey;
76
import dev.restate.serde.Serde;
@@ -43,7 +42,7 @@ public class {{generatedClassSimpleName}} {
4342
}
4443

4544
{{#handlers}}
46-
public CallAwaitable<{{{boxedOutputFqcn}}}> {{methodName}}({{^inputEmpty}}{{{inputFqcn}}} req{{/inputEmpty}}) {
45+
public CallDurableFuture<{{{boxedOutputFqcn}}}> {{methodName}}({{^inputEmpty}}{{{inputFqcn}}} req{{/inputEmpty}}) {
4746
return this.ctx.call(
4847
{{../requestsClass}}.{{methodName}}({{#if ../isKeyed}}this.key{{^inputEmpty}}, {{/inputEmpty}}{{/if}}{{^inputEmpty}}req{{/inputEmpty}})
4948
);

sdk-api-kotlin-gen/src/main/resources/templates/Client.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{{#if originalClassPkg}}package {{originalClassPkg}};{{/if}}
22

33
{{#contextClientEnabled}}
4-
import dev.restate.sdk.kotlin.CallAwaitable
4+
import dev.restate.sdk.kotlin.CallDurableFuture
55
import dev.restate.sdk.kotlin.InvocationHandle
66
import dev.restate.sdk.kotlin.Context
77
import dev.restate.sdk.kotlin.asSendDelayed
@@ -34,7 +34,7 @@ object {{generatedClassSimpleName}} {
3434
{{#contextClientEnabled}}
3535
class ContextClient(private val ctx: Context{{#isKeyed}}, private val key: String{{/isKeyed}}){
3636
{{#handlers}}
37-
suspend fun {{methodName}}({{^inputEmpty}}req: {{{inputFqcn}}}, {{/inputEmpty}}init: dev.restate.common.Request.Builder<{{{boxedInputFqcn}}}, {{{boxedOutputFqcn}}}>.() -> Unit = {}): CallAwaitable<{{{boxedOutputFqcn}}}> {
37+
suspend fun {{methodName}}({{^inputEmpty}}req: {{{inputFqcn}}}, {{/inputEmpty}}init: dev.restate.common.Request.Builder<{{{boxedInputFqcn}}}, {{{boxedOutputFqcn}}}>.() -> Unit = {}): CallDurableFuture<{{{boxedOutputFqcn}}}> {
3838
return this.ctx.call(
3939
{{../requestsClass}}.{{methodName}}({{#if ../isKeyed}}this.key, {{/if}}{{^inputEmpty}}req, {{/inputEmpty}}init)
4040
)

sdk-api-kotlin/src/main/kotlin/dev/restate/sdk/kotlin/ContextImpl.kt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ internal constructor(
4343
override suspend fun <T : Any> get(key: StateKey<T>): T? =
4444
resolveSerde<T?>(key.serdeInfo())
4545
.let { serde ->
46-
SingleAwaitableImpl(handlerContext.get(key.name()).await()).simpleMap {
46+
SingleDurableFutureImpl(handlerContext.get(key.name()).await()).simpleMap {
4747
it.getOrNull()?.let { serde.deserialize(it) }
4848
}
4949
}
5050
.await()
5151

5252
override suspend fun stateKeys(): Collection<String> =
53-
SingleAwaitableImpl(handlerContext.getKeys().await()).await()
53+
SingleDurableFutureImpl(handlerContext.getKeys().await()).await()
5454

5555
override suspend fun <T : Any> set(key: StateKey<T>, value: T) {
5656
handlerContext.set(key.name(), resolveAndSerialize(key.serdeInfo(), value)).await()
@@ -64,12 +64,12 @@ internal constructor(
6464
handlerContext.clearAll().await()
6565
}
6666

67-
override suspend fun timer(duration: Duration, name: String?): Awaitable<Unit> =
68-
SingleAwaitableImpl(handlerContext.timer(duration.toJavaDuration(), name).await()).map {}
67+
override suspend fun timer(duration: Duration, name: String?): DurableFuture<Unit> =
68+
SingleDurableFutureImpl(handlerContext.timer(duration.toJavaDuration(), name).await()).map {}
6969

7070
override suspend fun <Req : Any?, Res : Any?> call(
7171
request: Request<Req, Res>
72-
): CallAwaitable<Res> =
72+
): CallDurableFuture<Res> =
7373
resolveSerde<Res>(request.responseTypeTag()).let { responseSerde ->
7474
val callHandle =
7575
handlerContext
@@ -85,7 +85,7 @@ internal constructor(
8585
CompletableFuture.completedFuture<Res>(responseSerde.deserialize(it))
8686
}
8787

88-
return@let CallAwaitableImpl(callAsyncResult, callHandle.invocationIdAsyncResult)
88+
return@let CallDurableFutureImpl(callAsyncResult, callHandle.invocationIdAsyncResult)
8989
}
9090

9191
override suspend fun <Req : Any?, Res : Any?> send(
@@ -122,7 +122,7 @@ internal constructor(
122122
name: String,
123123
retryPolicy: RetryPolicy?,
124124
block: suspend () -> T
125-
): Awaitable<T> {
125+
): DurableFuture<T> {
126126
var serde: Serde<T> = resolveSerde(typeTag)
127127
var coroutineCtx = currentCoroutineContext()
128128
val javaRetryPolicy =
@@ -151,7 +151,7 @@ internal constructor(
151151
}
152152
}
153153
.await()
154-
return SingleAwaitableImpl(asyncResult).map { serde.deserialize(it) }
154+
return SingleDurableFutureImpl(asyncResult).map { serde.deserialize(it) }
155155
}
156156

157157
override suspend fun <T : Any> awakeable(typeTag: TypeTag<T>): Awakeable<T> {
@@ -180,13 +180,13 @@ internal constructor(
180180
DurablePromise<T> {
181181
val serde: Serde<T> = resolveSerde(key.serdeInfo())
182182

183-
override suspend fun awaitable(): Awaitable<T> =
184-
SingleAwaitableImpl(handlerContext.promise(key.name()).await()).simpleMap {
183+
override suspend fun future(): DurableFuture<T> =
184+
SingleDurableFutureImpl(handlerContext.promise(key.name()).await()).simpleMap {
185185
serde.deserialize(it)
186186
}
187187

188188
override suspend fun peek(): Output<T> =
189-
SingleAwaitableImpl(handlerContext.peekPromise(key.name()).await())
189+
SingleDurableFutureImpl(handlerContext.peekPromise(key.name()).await())
190190
.simpleMap { it.map { serde.deserialize(it) } }
191191
.await()
192192
}
@@ -196,7 +196,7 @@ internal constructor(
196196
val serde: Serde<T> = resolveSerde(key.serdeInfo())
197197

198198
override suspend fun resolve(payload: T) {
199-
SingleAwaitableImpl(
199+
SingleDurableFutureImpl(
200200
handlerContext
201201
.resolvePromise(
202202
key.name(), serde.serializeWrappingException(handlerContext, payload))
@@ -205,7 +205,7 @@ internal constructor(
205205
}
206206

207207
override suspend fun reject(reason: String) {
208-
SingleAwaitableImpl(
208+
SingleDurableFutureImpl(
209209
handlerContext.rejectPromise(key.name(), TerminalException(reason)).await())
210210
.await()
211211
}

0 commit comments

Comments
 (0)