This repo contains Dapr applications to demonstrate Dapr resiliency policies and durable execution with Dapr workflow.
Running the demos with Demo Time in this repo is recommended since this gives more context about:
- failure and distributed computing challenges
- what durable execution is
- how the Dapr Workflow implements durable execution
- the way Dapr provides resiliency
- Prequisites
- Run the Durable Execution & Workflow demo with Demo Time
- Run the Resiliency demo with Demo Time
- Dapr Reliability Advisor in Conductor Free
- Dapr Workflow Composer
- Resources
You can choose to run the demos locally, which requires that you install the required dependencies yourself. Or you use the provided devcontainer that contains all required dependencies.
Ensure you have these installed on your machine:
- .NET 9
- Dapr CLI
- Docker Desktop
- VSCode - Although other IDEs can be used to view the code, some VSCode specific extensions are used (such as DemoTime) to help guide you through the codebase.
Ensure you have these installed on your machine:
- Docker Desktop
- VSCode - Although other IDEs can be used to view the code, some VSCode specific extensions are used (such as Demo Time) to help guide you through the codebase.
- Dev Containers Extension to run the devcontainer in VS Code.
The devcontainer configuration is using a .NET 9 image and includes the Dapr CLI and the required VS Code extensions.
Clone the dapr-resiliency-and-durable-execution repo to your local machine.
Open the cloned repo in VSCode and accept the suggested VSCode extensions or choose to open the repo in the devcontainer.
The WorkflowDemo consists of two applications; a WorkflowApp, a ShippingApp, and a state store.
The workflow simulates an order validation process that involves checking and updating the inventory, retrieving shipping costs, and registering the shipment with the cheapest shipment provider:
Using the Demo Time panel in the VSCode explorer, start the 3 - Durable Execution & Workflow demo:
The ResiliencyDemo consists of two applications, ValidationService and ProfileService, and a state store.
graph LR
A{{ValidationService}}
B{{ProfileService}}
State[(KV Store)]
A --HTTP--> B
B --> State
Using the Demo Time panel in the VSCode explorer, start the 4 - Dapr Resiliency demo:
Diagrid Conductor Free is a free tool developers can use to visualize, troubleshoot, and optimize Dapr workloads on Kubernetes. It includes an Advisor that provides recommendations on how to improve the reliability of your Dapr applications.
Try the Dapr Workflow Composer, a free tool where you can upload a workflow image, or draw one in the browser, and scaffold a complete workflow application.