Skip to main content

Why Dapr, Aspire, and Catalyst = 🚀

Building reliable, long-running workflows in .NET requires more than just writing business logic. You need durable execution, good local development tooling, and a production platform that handles scaling, security, and operations. Dapr, .NET Aspire, and Diagrid Catalyst each solve a distinct part of this challenge, and together they form a complete workflow development and production stack.

Dapr: Provides decoupling and a built-in workflow engine​

Dapr (Distributed Application Runtime) provides a set of building block APIs that abstract away common distributed systems concerns. Dapr offers many APIs that decouple the application layer from the underlying infrastructure resources. The Dapr Workflow building block allows you to define long-running, stateful business processes directly in C# code rather than in YAML, JSON, or a separate DSL.

Why Dapr Workflow for .NET developers​

  • Code-first orchestration: Define workflows and activities using familiar C# constructs such as async/await, loops, conditionals, and error handling. Workflow logic is authored in the same language as the rest of your application.
  • Durable execution: Workflow state is automatically persisted across process restarts and failures. If your application crashes mid-workflow, it resumes exactly where it left off.
  • Rich orchestration patterns: Built-in support for task chaining, fan-out/fan-in, durable timers, external event handling, human approval gates, and child workflows.
  • Infrastructure portability: Dapr's pluggable component model decouples your workflow code from the underlying state store. The same workflow runs against Redis during development and a managed store in production, with zero code changes.

.NET Aspire: Streamlined local development​

.NET Aspire is a developer-first platform for orchestrating distributed .NET applications. For Dapr Workflow development, Aspire transforms the local development experience to run and debug your workflows quickly.

What Aspire brings to workflow development​

  • Single-command startup: Launch your entire distributed application, including Dapr sidecars, state stores, and supporting services, with aspire run. No manual process management or shell scripts needed.
  • Code-first orchestration: Define your application topology in C# using the AppHost project. Service dependencies, Dapr sidecars, containers, and resource connections are all declared in code, giving you type safety and IDE support.
  • Built-in observability: Aspire ships with an integrated dashboard that provides real-time logs, distributed traces, and metrics across all services with zero configuration. Trace a workflow execution across activities and services without setting up a separate observability stack.
  • Diagrid Dev Dashboard integration: Run the Diagrid Dev Dashboard as a container within your Aspire application to inspect workflow executions, view inputs/outputs, and monitor execution history during local development.
  • Fast onboarding: New team members can clone the repo and run the full application stack immediately. The AppHost file serves as living documentation of the system topology.

Diagrid Catalyst: Production-grade workflow hosting​

When it's time to move from local development to production, Diagrid Catalyst provides a managed platform purpose-built for running Dapr workloads, including workflows. Catalyst handles the operational complexity so your team can focus on building business logic.

What Catalyst provides for production workflows​

  • Reliability and scale - Managed Dapr runtime with automated scaling, upgrades, and high availability backed by an enterprise SLA. Postgres-backed scheduler capable of 1000+ tasks per second.
  • Security and governance - Zero-trust connectivity with identity-based authentication, eliminating static tokens or secrets in application code. Organization and project isolation for separating environments, teams, and workloads.
  • Workflow management and observability - Workflow visualizer with graphical views of execution state transitions, timers, and failures. Manage workflow lifecycle directly from the UI: start, pause, resume, raise events, and purge workflow instances. Application metrics, API logs, and an application graph showing service-to-service communication topology.
  • Operational automation - Managed cloud development resources including state stores, pub/sub, and workflow stores, provisioned automatically.Workflow history archiving for long-term audit and compliance.Enterprise support and guidance from the creators and maintainers of Dapr.

The development-to-production workflow​

Using Dapr, Aspire, and Catalyst together creates a smooth path from local development to production:

  1. Build with Dapr: Author your workflow logic, activities, and orchestration in C# using the Dapr Workflow .NET SDK. Your code targets the Dapr API, not a specific hosting environment.

  2. Develop with Aspire: Run and debug your entire application locally using Aspire. The Dapr sidecar and a local state store (such as Valkey/Redis) handle workflow execution. Use the Aspire Dashboard for traces and the Diagrid Dev Dashboard for workflow-specific inspection.

  3. Deploy with Catalyst: When you're ready for production, swap the local Dapr sidecar for the managed Catalyst runtime by updating the Aspire AppHost configuration. Your workflow code stays exactly the same. Catalyst takes over workflow execution, state management, scaling, and monitoring.

This transition requires minimal code changes. In practice, switching from local Dapr to Catalyst involves replacing the Dapr sidecar configuration in your AppHost with the Catalyst Aspire integration, removing local infrastructure dependencies like Redis, and running aspire run again. The workflow and activity code remains untouched.

Next steps​