dapr/dapr
Dapr is a portable runtime for building distributed applications across cloud and edge, combining event-driven architecture with workflow orchestration.
Dapr – Runtime for Distributed Apps, Workflows, and AI Agents
What it is – Dapr (Distributed Application Runtime) is an open‑source, CNCF‑graduated platform that runs as a side‑car next to your services. It gives you a set of building‑block APIs (state stores, pub/sub, service invocation, actors, workflows, etc.) that work over plain HTTP or gRPC and are reachable from any language via native SDKs.
Why it matters for AI – Modern AI agents are no longer just “call a model and get a response”. Production agents need:
- Durable, resumable execution (so a crash doesn’t lose progress)
- Persistent memory between turns
- Secure, authenticated communication between many micro‑services or other agents
- Easy integration with LLMs (the Conversation API) and tool‑calling
- Auditable, verifiable execution histories for compliance‑heavy domains
Dapr supplies all of these as reusable primitives, letting developers focus on the agent logic instead of plumbing.
Key capabilities
| Feature | What you get |
|---|---|
| Workflows | Durable, versioned, multi‑step processes with timers, retries, child workflows, and human‑in‑the‑loop events. Managed via a CLI and API. |
| Service Invocation | Reliable, mTLS‑protected RPC between services, language‑agnostic. |
| State Management | Pluggable state stores (Redis, Cosmos, etc.) with simple get/set APIs. |
| Pub/Sub | Event‑driven messaging on any broker (Kafka, NATS, RabbitMQ…) with at‑least‑once delivery. |
| Actors | Virtual, stateful actors for fine‑grained concurrency. |
| Conversation | Uniform API to call LLMs, with prompt caching and tool‑calling support. |
| Bindings | Trigger code from external systems (databases, queues, cloud services) and emit events outward. |
| Secrets & Config | Secure secret retrieval and dynamic config subscription. |
| Distributed Locks & Cryptography | Coordination primitives and easy encryption/decryption without handling keys directly. |
| Jobs | One‑off or scheduled tasks. |
All of these are exposed over HTTP/gRPC and have SDKs for .NET, Java, Python, Go, JavaScript/TypeScript, Rust, C++ and PHP.
How you use it
- Add the Dapr sidecar to each service (Docker container, binary, or local process).
- Call any Dapr API from your code via the language SDK or raw HTTP/gRPC.
- Define workflows in your preferred language; Dapr persists their state automatically.
- For AI agents, use the Conversation API to talk to an LLM, store the conversation in a state store, and orchestrate multi‑step reasoning with a workflow.
Running anywhere – Because the sidecar is just a ~58 MB binary, Dapr works on Kubernetes, any public cloud, edge devices, VMs, or even a laptop. No code changes are needed to move between environments.
Community & maturity – Dapr is a graduated CNCF project with production use at many enterprises. It has a vibrant community (Discord, bi‑weekly calls, extensive docs, quick‑starts, and sample repos) and a full suite of SDKs and component libraries.
Getting started – The README points to the official docs (docs.dapr.io), quick‑start guides, and sample repositories for hands‑on learning.
TL;DR – Dapr is a language‑agnostic runtime that gives you durable workflows, secure service‑to‑service calls, state, pub/sub, and an LLM‑friendly Conversation API, making it a solid foundation for building reliable AI agents and other distributed cloud/edge applications.
Related
- Project
- Project
- Project
- Project