diff --git a/go/basics/part3/workflows.go b/go/basics/part3/workflows.go index 37dc3023..86eefbec 100644 --- a/go/basics/part3/workflows.go +++ b/go/basics/part3/workflows.go @@ -49,7 +49,7 @@ func (SignupWorkflow) Run(ctx restate.WorkflowContext, user User) (bool, error) // Wait until user clicked email verification link // Promise gets resolved or rejected by the other handlers - clickSecret, err := restate.Promise[string](ctx, "email-link").Result() + clickSecret, err := restate.Promise[string](ctx, "link-clicked").Result() if err != nil { return false, err } @@ -61,7 +61,7 @@ func (SignupWorkflow) Run(ctx restate.WorkflowContext, user User) (bool, error) func (SignupWorkflow) Click(ctx restate.WorkflowSharedContext, secret string) error { // Send data to the workflow via a durable promise - return restate.Promise[string](ctx, "email-link").Resolve(secret) + return restate.Promise[string](ctx, "link-clicked").Resolve(secret) } func main() { diff --git a/java/basics/src/main/java/workflows/SignupWorkflow.java b/java/basics/src/main/java/workflows/SignupWorkflow.java index ba0442e5..24041ff6 100644 --- a/java/basics/src/main/java/workflows/SignupWorkflow.java +++ b/java/basics/src/main/java/workflows/SignupWorkflow.java @@ -16,7 +16,6 @@ import dev.restate.sdk.annotation.Shared; import dev.restate.sdk.annotation.Workflow; import dev.restate.sdk.common.DurablePromiseKey; -import dev.restate.sdk.common.StateKey; import dev.restate.sdk.http.vertx.RestateHttpEndpointBuilder; import utils.User; @@ -37,8 +36,8 @@ public class SignupWorkflow { // References to K/V state and promises stored in Restate - private static final DurablePromiseKey EMAIL_CLICKED = - DurablePromiseKey.of("email_clicked", JsonSerdes.STRING); + private static final DurablePromiseKey LINK_CLICKED = + DurablePromiseKey.of("link_clicked", JsonSerdes.STRING); // --- The workflow logic --- @Workflow @@ -56,7 +55,7 @@ public boolean run(WorkflowContext ctx, User user) { // Wait until user clicked email verification link // Promise gets resolved or rejected by the other handlers String clickSecret = - ctx.promise(EMAIL_CLICKED) + ctx.promise(LINK_CLICKED) .awaitable() .await(); @@ -68,7 +67,7 @@ public boolean run(WorkflowContext ctx, User user) { @Shared public void click(SharedWorkflowContext ctx, String secret) { // Send data to the workflow via a durable promise - ctx.promiseHandle(EMAIL_CLICKED).resolve(secret); + ctx.promiseHandle(LINK_CLICKED).resolve(secret); } public static void main(String[] args) { diff --git a/kotlin/basics/src/main/kotlin/workflows/SignupWorkflow.kt b/kotlin/basics/src/main/kotlin/workflows/SignupWorkflow.kt index e64a40f5..ac90e304 100644 --- a/kotlin/basics/src/main/kotlin/workflows/SignupWorkflow.kt +++ b/kotlin/basics/src/main/kotlin/workflows/SignupWorkflow.kt @@ -21,8 +21,7 @@ class SignupWorkflow { companion object { // References to K/V state and promises stored in Restate - private val EMAIL_CLICKED = KtDurablePromiseKey.json("email_clicked") - private val ONBOARDING_STATUS = KtStateKey.json("status") + private val LINK_CLICKED = KtDurablePromiseKey.json("email_clicked") } @Workflow @@ -40,7 +39,7 @@ class SignupWorkflow { // Wait until user clicked email verification link // Promise gets resolved or rejected by the other handlers val clickSecret: String = - ctx.promise(EMAIL_CLICKED) + ctx.promise(LINK_CLICKED) .awaitable() .await() @@ -51,7 +50,7 @@ class SignupWorkflow { @Shared suspend fun click(ctx: SharedWorkflowContext, secret: String) { // Send data to the workflow via a durable promise - ctx.promiseHandle(EMAIL_CLICKED).resolve(secret) + ctx.promiseHandle(LINK_CLICKED).resolve(secret) } } diff --git a/kotlin/patterns-use-cases/README.md b/kotlin/patterns-use-cases/README.md index be2ad826..e8a5980e 100644 --- a/kotlin/patterns-use-cases/README.md +++ b/kotlin/patterns-use-cases/README.md @@ -23,7 +23,7 @@ Use Restate as a queue. Schedule tasks for now or later and ensure the task is o - The **send requests** put the tasks in Restate's queue. The task submitter does not wait for the task response. - The **idempotency key** in the header is used by Restate to deduplicate requests. - If a delay is set, the task will be executed later and Restate will track the timer durably, like a **delayed task queue**. -- [Async Task Worker](src/main/kotlin/my/example/queue/AsyncTaskService.kt): gets invoked by Restate for each task in the queue. +- [Async Task Worker](src/main/kotlin/my/example/queue/AsyncTaskWorker.kt): gets invoked by Restate for each task in the queue. ## Sagas [](src/main/kotlin/my/example/sagas/BookingWorkflow.kt) diff --git a/python/basics/app/3_workflows.py b/python/basics/app/3_workflows.py index eb98088c..6d18311f 100644 --- a/python/basics/app/3_workflows.py +++ b/python/basics/app/3_workflows.py @@ -40,7 +40,7 @@ async def create_user(): # Wait until user clicked email verification link # Promise gets resolved or rejected by the other handlers - click_secret = await ctx.promise("email_link").value() + click_secret = await ctx.promise("link_clicked").value() return click_secret == secret @@ -48,7 +48,7 @@ async def create_user(): @user_signup.handler() async def click(ctx: WorkflowSharedContext, secret: str): # Send data to the workflow via a durable promise - await ctx.promise("email_link").resolve(secret) + await ctx.promise("link_clicked").resolve(secret) app = restate.app(services=[user_signup]) diff --git a/typescript/basics/src/3_workflows.ts b/typescript/basics/src/3_workflows.ts index 4c43f80a..7399b1a0 100644 --- a/typescript/basics/src/3_workflows.ts +++ b/typescript/basics/src/3_workflows.ts @@ -32,7 +32,7 @@ const signupWorkflow = restate.workflow({ // Wait until user clicked email verification link // Promise gets resolved or rejected by the other handlers - const clickSecret = await ctx.promise("email-link"); + const clickSecret = await ctx.promise("link-clicked"); return clickSecret === secret; }, @@ -42,7 +42,7 @@ const signupWorkflow = restate.workflow({ request: { secret: string }, ) => { // Send data to the workflow via a durable promise - await ctx.promise("email-link").resolve(request.secret); + await ctx.promise("link-clicked").resolve(request.secret); }, }, });