update overview w info from Ryan and community call demo

Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com>
This commit is contained in:
Hannah Hunter 2023-01-30 15:21:07 -06:00
parent 2fdfedf8e4
commit 97792ed2bc
3 changed files with 40 additions and 15 deletions

View File

@ -11,9 +11,7 @@ Now that you've read about [the workflow building block]({{< ref workflow-overvi
- Use the a worfklow component - Use the a worfklow component
- Configure or register a workflow component. - Configure or register a workflow component.
## Built-in workflow vs external workflows When you run `dapr init`, Dapr creates a default workflow runtime. This component is written in Go and implements workflow instances as actors to promote placement and scalability.
When you run `dapr init`, Dapr creates a default built-in workflow component. This component is written in Go and implements workflow instances as actors to promote placement and scalability.
[Insert HL diagram] [Insert HL diagram]

View File

@ -6,29 +6,56 @@ weight: 1000
description: "Overview of the workflow building block" description: "Overview of the workflow building block"
--- ---
With workflows, you can orchestrate tasks or business logic within your application, making them reliable and restartable. Workflows provide a programming model for authoring code that abstracts away the complexities of messaging, state management, and failure handling. {{% alert title="Note" color="primary" %}}
The Workflow building block is currently in alpha state supporting .NET.
{{% /alert %}}
## Workflow building block The Dapr Workflow building block strives to make orchestrating logic for messaging, state management, and failure handling across various microservices easier for developers. Prior to adding workflows to Dapr, you'd often need to build ad-hoc workflows behind-the-scenes in order to bridge that gap.
The workflow building block: The durable, resilient Dapr Workflow building block:
- Provides a workflow API for running workflows - Provides a workflow API for running workflows
- An built-in workflow runtime to write Dapr workflows (of type workflow.dapr) - Offers a built-in workflow runtime to write Dapr workflows (of type `workflow.dapr`)
- Integrates with various workflow runtimes as components, for example Temporal workflows. - Integrates with various workflow runtimes as components (for example, Temporal workflows)
*To Do:* The Workflow building block can assist with scenarios like:
- *Add diagram of how workflow API works?* - Order processing involving inventory management, payment systems, shipping, etc.
- *Add explaination of how the API works* - HR onboarding workflows coordinating tasks across multiple departments and participatns
- *[Reference](https://docs.dapr.io/developing-applications/building-blocks/service-invocation/service-invocation-overview/)* - Orchestrating the roll-out of digital menu updates in a national restaurant chain
- Image processing workflows involving API-based classification and storage
--- ## How it works
The Dapr Workflow engine runs in the Dapr sidecar and consists of:
- SDKs for authoring workflows in code, using any language
- APIs for managing workflows (start, query, suspend/resume, terminate)
The workflow engine is internally powered by Dapr's actor runtime. In the following diagram demonstrates the Dapr Workflow architecture in Kubernetes mode:
<img src="/images/workflow-overview/workflows-architecture-k8s.png" width=800 alt="Diagram showing how the workflow architecture works in Kubernetes mode">
Essentially, to use the Dapr Workflow building block, you write workflow code in your application using the SDK and connect to the sidecar using gRPC stream.
Notice that the engine itself is embedded directly into the sidecar and implemented by the `durabletask-go` framework library. This framework allows you to swap out different storage providers, including a storage provider created specifically for Dapr that leverages internal actors behind the scenes. Since Dapr Workflow uses actors, you can store workflow state in variety of Dapr-supported state stores, like Redis, CosmosDB, etc.
## Features ## Features
Start, Terminate and X any workflow ### HTTP/gRPC API calls to start or terminate any workflow
Once you create an application with workflow code and run it with Dapr, you can make HTTP/gRPC calls to Dapr to run specific tasks/workflows that reside in the application. Each individual workflow can be started or terminated through a POST request.
You can also get information on the workflow (even if it has been terminated or it finished naturally) through a GET request. This GET request will send back information, such as:
- The instance ID of the workflow
- The time that the run started
- The current running status, whether that be “Running”, “Terminated”, or “Completed”
## Watch the demo
Watch [this video for an overview on Dapr Workflows](https://youtu.be/s1p9MNl4VGo?t=131):
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/s1p9MNl4VGo?start=131" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
## Next steps ## Next steps
- [Learn how to set up a workflow]({{< ref howto-workflow.md >}}) - [Learn how to set up a workflow]({{< ref howto-workflow.md >}})
- [Supported workflows]({{< ref supported-workflows.md >}}) - [Supported workflows]({{< ref supported-workflows.md >}})

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB