diff --git a/daprdocs/content/en/developing-applications/building-blocks/workflow/workflow-features-concepts.md b/daprdocs/content/en/developing-applications/building-blocks/workflow/workflow-features-concepts.md index 553651c42..2fab89e64 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/workflow/workflow-features-concepts.md +++ b/daprdocs/content/en/developing-applications/building-blocks/workflow/workflow-features-concepts.md @@ -334,14 +334,7 @@ Failure to follow this rule could result in undefined behavior. Any background p For example, instead of this: -{{< tabs JavaScript ".NET" Java >}} - -{{% codetab %}} - -```javascript -// DON'T DO THIS! -``` -{{% /codetab %}} +{{< tabs ".NET" Java JavaScript >}} {{% codetab %}} @@ -364,19 +357,17 @@ ctx.createTimer(Duration.ofSeconds(5)).await(); {{% /codetab %}} +{{% codetab %}} + +Don't declare JavaScript workflow as `async`. The Node.js runtime doesn't guarantee that asynchronous functions are deterministic. + +{{% /codetab %}} + {{< /tabs >}} Do this: -{{< tabs JavaScript ".NET" Java >}} - -{{% codetab %}} - -```javascript -// Do this!! -``` - -{{% /codetab %}} +{{< tabs ".NET" Java JavaScript >}} {{% codetab %}} @@ -398,6 +389,12 @@ ctx.createTimer(Duration.ofSeconds(5)).await(); {{% /codetab %}} +{{% codetab %}} + +Since the Node.js runtime doesn't guarantee that asynchronous functions are deterministic, always declare JavaScript workflow as synchronous generator functions. + +{{% /codetab %}} + {{< /tabs >}}