Dapr Runtime
Dapr (Distributed Application Runtime) is an open-source, portable, event-driven runtime that makes it easy to build resilient, stateless and stateful microservices that run on the cloud and edge. Dapr provides a set of building blocks that abstract common distributed systems capabilities into simple, language-agnostic APIs, enabling developers to focus on business logic rather than infrastructure concerns.
- Build microservices with service-to-service invocation, state management, and pub/sub messaging
- Orchestrate complex business processes with durable workflows that survive failures and restarts
- Build intelligent AI agents with durable execution, memory management, and LLM abstraction
- Connect to any infrastructure component (databases, message brokers, cloud services) through a unified API
- Deploy anywhere - self-hosted, Kubernetes, or cloud platforms with consistent APIs
- Write code in any language - Go, Java, JavaScript, .NET, PHP, Python, and more
What is Dapr?β
Dapr is a runtime that helps developers build distributed applications by providing building blocks for common patterns like service invocation, state management, pub/sub messaging, workflows, and more. Instead of writing infrastructure code, developers use Dapr's HTTP or gRPC APIs (or language-specific SDKs) to access these capabilities.
Dapr runs as a sidecar alongside your application, either as a separate process (self-hosted) or as a container (Kubernetes). This sidecar architecture means your application code doesn't need to include any Dapr runtime code, making integration simple and keeping concerns separated.
Diagrid Catalyst handles running and managing the Dapr sidecars and control plane for you, so you don't need to manage sidecar deployment, configuration, or lifecycle yourself.
With Catalyst, you can deploy your applications on the hosting platform of your choiceβwhether that's Kubernetes, cloud platforms, or on-premisesβwithout being locked into a specific infrastructure.
Building Block APIsβ
Dapr provides a comprehensive set of building blocks that abstract common distributed systems patterns:
πService Invocation
Discover and securely invoke services with built-in retries, timeouts, and circuit breakers
π¨Pub/Sub
Publish and subscribe to events with guaranteed delivery, dead-letter queues, and broker abstraction
πΎState Management
Store and retrieve state with transactional operations, TTL, encryption, and querying support
βοΈWorkflows
Orchestrate long-running business processes with durable execution, timers, and external events
π€Actors
Stateful and stateless objects with concurrency, state encapsulation, and lifecycle management
πSecrets
Retrieve secrets from cloud and local secret stores securely
βοΈConfiguration
Retrieve and subscribe to application configuration from configuration stores
πDistributed Lock
Acquire exclusive locks on resources with automatic timeout and release
πCryptography
Encrypt and decrypt messages without exposing keys to applications
β°Jobs
Schedule jobs at specific times or intervals with durable execution
π¬Conversation
Interact with LLMs with prompt caching, PII obfuscation, and provider abstraction
Cross-cutting Capabilitiesβ
Alongside its building blocks, Dapr provides cross-cutting APIs that apply across all building blocks:
- Resiliency - Define fault tolerance policies with timeouts, retries/back-offs, and circuit breakers
- Observability - Automatic metrics, logs, and distributed tracing using W3C Trace Context and OpenTelemetry
- Security - In-transit encryption with mutual TLS, certificate management, and identity via SPIFFE
Dapr Use Casesβ
Workflowsβ
Build stateful workflows that orchestrate complex business processes, handle long-running operations, and guarantee durable execution through automatic checkpointing and recovery.
Learn more about Dapr Workflows β
Key capabilities:
- Durable execution that survives process restarts and failures
- Workflow patterns: task chaining, fan-out/fan-in, async HTTP APIs, compensation
- External events and timers for human-in-the-loop and scheduled operations
- Multi-application workflows that span different services
AI Agentsβ
Build intelligent, autonomous AI agents that can interact with external systems, make decisions, and orchestrate complex workflows using durable execution patterns and pluggable infrastructure.
Learn more about AI Agents with Dapr β
Key capabilities:
- Durable agents that persist execution state across restarts and failures
- Pluggable memory using any Dapr state store for conversation history
- Swappable LLM providers through the Conversation API (OpenAI, Azure OpenAI, AWS Bedrock, etc.)
- Multi-agent workflows combining LLM intelligence with deterministic orchestration
Microservicesβ
Build resilient microservices with service discovery, state management, and reliable messaging patterns, decoupled from underlying infrastructure across on-premises and cloud environments.
Learn more about building microservices with Dapr β
Key capabilities:
- Service-to-service communication with automatic discovery and secure mTLS
- State management with transactional operations and multi-store support
- Workflow orchestration for complex business processes and saga patterns
- Job scheduling for periodic tasks and batch operations
Event-Driven Architectureβ
Build scalable event-driven applications using a unified messaging API that abstracts away broker complexity and provides guaranteed delivery, content-based routing, and multi-cloud portability.
Learn more about event-driven architecture β
Key capabilities:
- Asynchronous communication with loose coupling between services
- At-least-once delivery with dead-letter queues and retries
- Broker abstraction supporting 20+ message brokers (Kafka, RabbitMQ, Redis, Azure Service Bus, AWS SNS/SQS, etc.)
- CloudEvents standard for vendor-neutral event structure
Language SDKsβ
Dapr offers language-specific SDKs that expose building block functionality through typed APIs:
πΉGo SDK
Client and service SDKs for building Dapr applications in Go
βJava SDK
Client SDK with Spring Boot integration for Java applications
πJavaScript SDK
Client and server SDKs for Node.js and browser applications
π·.NET SDK
Comprehensive SDK with ASP.NET Core integration and actor support
πPython SDK
Client SDK with FastAPI and Flask extensions, plus workflow support
Dapr Agents Frameworkβ
Dapr Agents is a Python framework for building intelligent, durable agents powered by LLMs. It provides agent-centric capabilities such as tool calling, memory management, MCP support, and agent orchestration, while leveraging Dapr for durability, observability, and security at scale.
Key features:
- Durable execution - Agents automatically checkpoint their state, allowing recovery from failures without losing progress or repeating expensive LLM calls
- Pluggable memory - Store conversation history in any Dapr state store (Redis, PostgreSQL, MongoDB, etc.) for persistent context across interactions
- Swappable LLM providers - Use the Dapr Conversation API to switch between OpenAI, Azure OpenAI, AWS Bedrock, Google Vertex AI, and more without code changes
- Multi-agent workflows - Orchestrate multiple agents within deterministic Dapr Workflows, combining LLM intelligence with reliable orchestration
- Built-in resiliency - Automatic retries, timeouts, and circuit breakers for external systems and LLM APIs
- Observability - OpenTelemetry tracing and Prometheus metrics out of the box
Dapr Agents integrates seamlessly with Dapr Workflow, enabling you to build complex agentic systems that combine the intelligence of LLMs with the reliability and predictability of workflow orchestration.
Component Modelβ
Dapr's component model decouples your application code from underlying infrastructure resources, enabling true portability and multi-cloud deployment. Your applications can be deployed on your preferred infrastructure, whether on-premises or in any cloud environment.
Key benefits:
- Infrastructure portability - Switch between message brokers, databases, secret stores, and other components without modifying application code
- Multi-cloud deployment - Run the same application code across different cloud providers (AWS, Azure, GCP) or on-premises environments
- 30+ state stores - Redis, PostgreSQL, MongoDB, Azure Cosmos DB, AWS DynamoDB, and more
- 20+ pub/sub brokers - Kafka, RabbitMQ, Redis Streams, Azure Service Bus, AWS SNS/SQS, Google Pub/Sub, and more
Sidecar Architectureβ
Dapr exposes its HTTP and gRPC APIs as a sidecar architecture, either as a container or as a process, not requiring the application code to include any Dapr runtime code. This makes integration with Dapr easy from other runtimes, as well as providing separation of the application logic for improved supportability.
Hosting Environmentsβ
Dapr can be hosted in three main ways, each with different operational models:
π»Self-Hosted
Run Dapr as a separate sidecar process alongside your application on Windows/Linux/macOS. You manage the Dapr runtime, sidecars, and control plane yourself.
βΈοΈKubernetes
Deploy Dapr as a sidecar container in Kubernetes pods with automatic injection. You manage the Kubernetes cluster and Dapr control plane.
βοΈDiagrid Catalyst
Managed Dapr platform that handles sidecars and control plane operations. Deploy your applications on any platform while Catalyst runs the Dapr infrastructure on a centralized Kubernetes cluster.
- Self-hosted runs Dapr as a process-based sidecar, ideal for local development and when you want full control over the runtime.
- Kubernetes uses container-based sidecars with automatic injection, suitable for containerized environments where your application and sidecars will run side-by-side.
- Diagrid Catalyst provides an alternative where the Catalyst agent manages the Dapr control plane in a centralized cluster, giving you the flexibility to deploy applications on any hosting platform without managing sidecars or the control plane yourself.