Dapr is an open-source runtime for building distributed applications, workflows, and AI agents. It provides durable execution, secure service-to-service communication, state management, event-driven messaging, and a consistent set of APIs that run anywhere β on Kubernetes, in the cloud, at the edge, or on your laptop.
Whether you're building AI agents, business-critical workflows, microservices, or event-driven systems, Dapr lets you focus on business logic instead of plumbing. Dapr runs as a sidecar, so every capability is available from any language over standard HTTP and gRPC, with native SDKs for .NET, Java, Python, Go, JavaScript/TypeScript, and Rust β no framework lock-in and no boilerplate to reach production-ready reliability, security, and observability.
Modern applications are no longer simple request/response services. They are long-running workflows, AI agents, event-driven pipelines, multi-agent systems, and human-in-the-loop processes β and they must survive failures, maintain state, and communicate securely in production.
Building all of that reliably is hard. Dapr brings proven patterns and battle-tested building blocks together into one consistent programming model, so you don't have to reinvent durability, security, or messaging for every service you ship. You're never exposed to low-level primitives like threading, partitioning, or retry logic β and you can move seamlessly between platforms and backing infrastructure without rewriting your code. Platform teams use Dapr to provide governance and golden paths, while application teams get simple APIs that work the same everywhere.
Applications fail. Infrastructure restarts. Networks partition. Your workflows and agents shouldn't lose their progress when that happens.
Dapr Workflows provide durable execution that automatically persists progress and resumes from the last completed step after:
- Process crashes
- Pod restarts
- Node failures
- Rolling deployments
- Infrastructure interruptions
Instead of restarting from the beginning, execution picks up exactly where it left off β with no extra database or state-machine code to write. You author workflows as ordinary code in your language of choice; if the application crashes midway through, Dapr recovers automatically and resumes from the next unfinished step.
Common use cases: AI agents, customer onboarding, order processing, human-approval flows, document processing, and other multi-step business processes.
AI agents need far more than model inference. To run in production they need state, orchestration, recovery, secure communication, and governance.
Dapr provides the runtime primitives to operate agents reliably β and works alongside your existing AI frameworks and models:
- Durable agent execution that survives crashes and restarts
- Long-running, multi-step tasks backed by Workflows
- Multi-agent orchestration and agent-to-agent communication
- State persistence and memory across interactions
- LLM integration through the Conversation API, with prompt caching and tool calling
- Human-in-the-loop approvals and event-driven coordination
- Automatic recovery after failures
Every Dapr application is issued a cryptographically verifiable identity. Security is built in, not bolted on:
- Mutual TLS (mTLS) for all service-to-service traffic
- Workload identity and authentication
- Fine-grained, least-privilege authorization policies
- Secret management backed by your preferred vault
- Automatic certificate issuance and rotation
- Zero-trust communication
Control exactly which applications, agents, and services are allowed to talk to each other:
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
name: access-policy
spec:
accessControl:
defaultAction: deny
policies:
- appId: orders
defaultAction: allowApply least-privilege access controls across your entire environment, without writing custom security infrastructure.
For many systems, knowing that work completed isn't enough β you need proof of how it completed.
Building on Dapr's cryptographic workload identity and durable workflow history, verifiable execution provides evidence of:
- Where work originated and which identity executed it
- The sequence and lineage of execution
- The authenticity of inputs and outputs
- Whether execution history was tampered with
This enables auditable workflows and AI systems that can prove integrity, authenticity, and provenance β ideal for financial services, healthcare, government, and other compliance-sensitive environments.
Durable execution and AI build on the same proven building blocks that power Dapr microservices. Mix and match what you need:
| API | What it does |
|---|---|
| Workflows | Author long-running, durable workflows and agentic processes as code |
| Service Invocation | Reliable, secure service-to-service calls with built-in mTLS, retries, and observability |
| State Management | Persist and query state across dozens of stores without coupling to a database |
| Pub/Sub | Build event-driven systems on your preferred message broker with at-least-once delivery |
| Actors | Build stateful, virtual actor-based applications |
| Conversation | Call LLMs through a consistent API, with prompt caching and tool calling |
| Bindings | Trigger your code from, and send events to, external systems |
| Secrets | Retrieve secrets securely from external secret stores |
| Configuration | Read and subscribe to application configuration consistently |
| Distributed Lock | Coordinate access to shared resources safely |
| Cryptography | Encrypt and decrypt data without exposing keys to your application |
| Jobs | Schedule work to run now or in the future |
All APIs are available over HTTP and gRPC, with SDKs for Java, .NET, Go, JavaScript, Python, Rust, C++, and PHP. You benefit from built-in observability, reliability, and pluggable, vendor-neutral components for state stores, message brokers, and more across Azure, AWS, and GCP.
Dapr runs as a sidecar (container or process) next to your app and works identically across:
- Kubernetes
- AWS, Azure, and Google Cloud
- Virtual machines and bare metal
- Edge and IoT environments
- Air-gapped deployments
It's lightweight (a ~58MB binary using ~4MB of memory), supports every programming language over HTTP and gRPC, and requires no application code changes to move between platforms. Adopt it incrementally, one API at a time, with no runtime lock-in.
Dapr is a graduated Cloud Native Computing Foundation (CNCF) project, used by organizations around the world to build mission-critical applications. Teams choose Dapr to recover automatically from failures, build reliable AI systems, secure communication between services, simplify distributed architectures, and avoid infrastructure lock-in.
See our Getting Started guide over in our docs.
- See the quickstarts repository for code examples that can help you get started with Dapr.
- Explore additional samples in the Dapr samples repository.
We want your contributions and suggestions! One of the easiest ways to contribute is to participate in discussions on the mailing list, chat on IM or the bi-weekly community calls. For more information on the community engagement, developer and contributing guidelines and more, head over to the Dapr community repo.
Reach out with any questions you may have and we'll make sure to answer them as soon as possible!
| Platform | Link |
|---|---|
| π¬ Discord (preferred) | |
| π LinkedIn | @daprdev |
| π¦ BlueSky | @daprdev.bsky.social |
| π€ Twitter | @daprdev |
Every two weeks we host a community call to showcase new features, review upcoming milestones, and engage in a Q&A. All are welcome!
π Visit Upcoming Dapr Community Calls for upcoming dates and the meeting link.
πΊ Visit https://www.youtube.com/@DaprDev/streams for previous community call live streams.
We have a variety of keynotes, podcasts, and presentations available to reference and learn from.
πΊ Visit https://docs.dapr.io/contributing/presentations/ for previous talks and slide decks or our YouTube channel https://www.youtube.com/@DaprDev/videos.
See the Development Guide to get started with building and developing.
| Repo | Description |
|---|---|
| Dapr | The main repository that you are currently in. Contains the Dapr runtime code and overview documentation. |
| CLI | The Dapr CLI allows you to setup Dapr on your local dev machine or on a Kubernetes cluster, provides debugging support, launches and manages Dapr instances. |
| Docs | The documentation for Dapr. |
| Quickstarts | This repository contains a series of simple code samples that highlight the main Dapr capabilities. |
| Samples | This repository holds community maintained samples for various Dapr use cases. |
| Components-contrib | The purpose of components contrib is to provide open, community driven reusable components for building distributed applications. |
| Go-sdk | Dapr SDK for Go |
| Java-sdk | Dapr SDK for Java |
| JS-sdk | Dapr SDK for JavaScript |
| Python-sdk | Dapr SDK for Python |
| Dotnet-sdk | Dapr SDK for .NET |
| Rust-sdk | Dapr SDK for Rust |
| Cpp-sdk | Dapr SDK for C++ |
| PHP-sdk | Dapr SDK for PHP |
Please refer to our Dapr Community Code of Conduct