Skip to content

dapr/dapr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6,874 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

The runtime for durable execution, AI agents, and secure distributed applications

Go Report OpenSSF Docker Pulls Build Status Test Status Code Coverage License: Apache 2.0 FOSSA Status TODOs Good First Issues discord YouTube Bluesky X/Twitter

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.

Dapr overview

Why Dapr?

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.

Durable Execution

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.

Build Reliable AI Agents

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

Secure by Default

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: allow

Apply least-privilege access controls across your entire environment, without writing custom security infrastructure.

Verifiable Execution

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.

Distributed Application APIs

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.

Run Anywhere

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.

Trusted in Production

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.

Get Started

See our Getting Started guide over in our docs.

Quickstarts and Samples

Community

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.

Contact Us

Reach out with any questions you may have and we'll make sure to answer them as soon as possible!

Platform Link
πŸ’¬ Discord (preferred) Discord Banner
πŸ’­ LinkedIn @daprdev
πŸ¦‹ BlueSky @daprdev.bsky.social
🐀 Twitter @daprdev

Community Call

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.

Videos and Podcasts

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.

Contributing to Dapr

See the Development Guide to get started with building and developing.

Repositories

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

Code of Conduct

Please refer to our Dapr Community Code of Conduct

About

Dapr is a portable runtime for building distributed applications across cloud and edge, combining event-driven architecture with workflow orchestration.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors