<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/building-dapr-workflows-in-net-with-aspire-fjy33sg0k" -->

---
title: Building Dapr Workflows in .NET With Aspire | daily.dev
description: Dapr Workflow lets you write long-running business processes as plain C# code that survives crashes and restarts by recording every step to a state store. This...
canonical: https://daily.dev/posts/building-dapr-workflows-in-net-with-aspire-fjy33sg0k
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Building Dapr Workflows in .NET With Aspire | daily.dev
og:description: Dapr Workflow lets you write long-running business processes as plain C# code that survives crashes and restarts by recording every step to a state store. This...
og:url: https://daily.dev/posts/building-dapr-workflows-in-net-with-aspire-fjy33sg0k
og:image: https://api.daily.dev/og/posts/fJY33sG0k.png
og:image:alt: Building Dapr Workflows in .NET With Aspire
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Building Dapr Workflows in .NET With Aspire

**[Milan Jovanović](https://daily.dev/sources/milanjovanovic)** · 10 min read · 10 upvotes · 1 comments

## Summary

Dapr Workflow lets you write long-running business processes as plain C# code that survives crashes and restarts by recording every step to a state store. This walkthrough builds an order processing workflow with four activities (inventory check, payment, stock update, customer notification), wires it up with .NET Aspire for one-command local orchestration using Valkey as the actor-backed state store, and adds the Diagrid Dev Dashboard to inspect workflow instance state and execution history. Key rules covered include keeping workflow code deterministic, using activities for all side effects, pinning the Valkey password so the Dapr component YAML stays consistent, and setting actorStateStore: true in the component config.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.milanjovanovic.tech/blog/building-dapr-workflows-in-dotnet-with-aspire>

## Community discussion

Top comments from developers on daily.dev.

**@charithwick** · 0 upvotes

> thanks Milan..

## Similar posts on daily.dev

- [Working with Dapr Workflows in the ABP Framework](https://daily.dev/posts/working-with-dapr-workflows-in-the-abp-framework-obngfkc8p) · We Are .NET · 0 upvotes · 0 comments
- [How Dapr and WebAssembly Team Up for Microservices](https://daily.dev/posts/how-dapr-and-webassembly-team-up-for-microservices-jbgwbn6sy) · The New Stack · 2 upvotes · 0 comments
- [Building a .NET API Gateway with ClickHouse and Aspire](https://daily.dev/posts/building-a-net-api-gateway-with-clickhouse-and-aspire-jjct03v7d) · ClickHouse · 0 upvotes · 0 comments

---

Tags: [#c#](https://daily.dev/tags/c#), [#workflow-orchestration](https://daily.dev/tags/workflow-orchestration)

[View this post on daily.dev](https://daily.dev/posts/building-dapr-workflows-in-net-with-aspire-fjy33sg0k)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Building Dapr Workflows in .NET With Aspire","url":"https://daily.dev/posts/building-dapr-workflows-in-net-with-aspire-fjy33sg0k","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/building-dapr-workflows-in-net-with-aspire-fjy33sg0k"},"datePublished":"2026-06-12T22:18:22.860Z","dateModified":"2026-06-12T22:18:49.682Z","description":"Dapr Workflow lets you write long-running business processes as plain C# code that survives crashes and restarts by recording every step to a state store. This...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/bf4df9f01d1cbb55bf3a04b1c11ba984?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/bf4df9f01d1cbb55bf3a04b1c11ba984?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Milan Jovanović","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Milan Jovanović","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/78d8abfb692746538410dee47f93e566","url":"https://daily.dev/sources/milanjovanovic"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/building-dapr-workflows-in-net-with-aspire-fjy33sg0k","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":10},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"c#,workflow-orchestration","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Milan Jovanović","item":"https://daily.dev/sources/milanjovanovic"},{"@type":"ListItem","position":3,"name":"Building Dapr Workflows in .NET With Aspire"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/building-dapr-workflows-in-net-with-aspire-fjy33sg0k","comment":[{"@type":"Comment","text":"thanks Milan…","datePublished":"2026-06-18T10:08:12.197Z","url":"https://daily.dev/posts/fJY33sG0k#c-4IYznDoi2","author":{"@type":"Person","name":"Charith Wickramasinghe","url":"https://daily.dev/charithwick","image":"https://lh3.googleusercontent.com/a/ACg8ocJZMEzoPH7Qd4G8ABcEZc5oQkD_wx2SqHlpJxLBgHk_XmcMPFQ=s96-c"}}]}
```

