Dapr
Dapr (Distributed Application Runtime) is a portable runtime that simplifies building distributed microservices. It provides building-block APIs for service invocation, state management, pub/sub messaging, and secrets, letting applications use these capabilities through HTTP or gRPC without vendor-specific SDKs.
itCloud native tools and technologies | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic: Dapr
Dapr is a runtime that sits beside an application and gives it local APIs for the distributed-system chores that otherwise breed client libraries, configuration files, and a slightly alarming collection of retry loops. The application keeps its business logic. The sidecar, a nearby daprd process or container, handles selected calls to other applications and infrastructure. This is not magic. It is a carefully positioned extra process, which is more useful than magic because it can be inspected when it misbehaves.
The useful split is between a building block and a component. A building block is the API your application calls for service invocation, state, pub/sub, secrets, or another capability. A component is the configured implementation behind it, such as a state store or broker. That division lets application code avoid a vendor-specific client, but it does not make every broker or data store behave alike. The word portable therefore means "portable at the Dapr API boundary," not "free from testing," which would be a suspiciously generous offer from a distributed system.
Each application has an application ID, which Dapr uses for routing, discovery, identity, and policy. For a service call, the caller talks locally to its sidecar; the sidecars carry the request to the destination application. For a component call, the sidecar uses the named component to reach the backing system. The local API is the stable bit. The exact component features, credentials, latency, and failure modes are the parts that still require grown-up attention.
The surprise is that reliability policies are not correctness policies. A timeout tells a caller to stop waiting. A retry repeats an attempt. Neither can tell whether a remote write already happened. Dapr can apply timeouts, retries, and circuit breakers, but the application must make duplicate work safe and must decide what a partial result means. A cheerful YAML file cannot settle that argument for you, despite its confidence.
Start with the Intro when you need the complete architecture and the difference between building blocks and components. Use Slides for the call paths and control-plane map. Keep Cheatsheet nearby when choosing scopes, policies, and failure tests. The practice reference then gives the local sidecar a name, a port, and a metadata endpoint, which is an excellent way to meet a runtime before asking it to coordinate anything important.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://docs.dapr.io/concepts/overview/
Supports
- Dapr purpose and distributed application runtime definition
- Independent building blocks and platform-neutral positioning
- Sidecar architecture and local HTTP or gRPC APIs
- Self-hosted and Kubernetes hosting models
- Application and operational boundaries
- https://docs.dapr.io/concepts/building-blocks-concept/
Supports
- Building block definition as an HTTP or gRPC API
- Current building-block catalog and purposes
- Relationship between building blocks and components
- Quiz answers about building blocks
- https://docs.dapr.io/concepts/components-concept/
Supports
- Component interfaces and interchangeability model
- Component-specific metadata and feature differences
- Built-in and pluggable components
- State, pub/sub, binding, secret, middleware, and conversation component types
- Component replacement cautions and quiz answers
- https://docs.dapr.io/concepts/dapr-services/sidecar/
Supports
- daprd process role and sidecar API surface
- Local HTTP and gRPC application calls
- Sidecar readiness behavior
- Self-hosted launch and Kubernetes injection
- Sidecar configuration and quiz answers
- https://docs.dapr.io/operations/hosting/kubernetes/kubernetes-overview/
Supports
- Operator, injector, placement, Sentry, and scheduler responsibilities
- Kubernetes application annotations and sidecar injection
- Scheduler support for Jobs, Workflow, and actor reminders
- Kubernetes control-plane quiz answers
- https://docs.dapr.io/operations/hosting/self-hosted/self-hosted-overview/
Supports
- Sidecar per application in self-hosted mode
- Dapr CLI launch model
- Default mDNS name resolution
- Local resource and component configuration
- https://docs.dapr.io/concepts/resiliency-concept/
Supports
- Resiliency purpose and scope
- Timeout, retry with backoff, and circuit-breaker policies
- Application, actor, and component targets
- Quiz answers about resiliency
- https://docs.dapr.io/operations/resiliency/policies/
Supports
- Named timeout, retry, and circuit-breaker policies
- Policy and target resource structure
- Ordered-link rationale for production reliability study
- https://docs.dapr.io/operations/resiliency/policies/timeouts/
Supports
- Timeout purpose and termination behavior
- Need for realistic production timeout durations
- Quiz scenario involving a timed-out state-changing call
- https://docs.dapr.io/concepts/security-concept/
Supports
- Application ID as identity and routing unit
- Mutual TLS and Sentry certificate authority
- Application-to-sidecar API token authentication
- API, service, pub/sub, component, and secret scopes
- Namespaces, least privilege, and backing-system security
- Security quiz answers
- https://docs.dapr.io/concepts/observability-concept/
Supports
- Distributed tracing and W3C trace context
- OpenTelemetry and Zipkin trace protocols
- Sidecar and control-plane logs, metrics, and health
- Application health probing behavior
- Observability and adoption quiz grounding
- https://docs.dapr.io/getting-started/quickstarts/
Supports
- Maintained hands-on examples by building block
- Ordered learning path from concepts to application
- Link rationale for practical study
- https://docs.dapr.io/developing-applications/sdks/
Supports
- Client, server, actor, and workflow SDK roles
- Current language support matrix
- Link rationale for implementation study
- https://docs.dapr.io/concepts/faq/service-mesh/
Supports
- Dapr as developer-centric application building blocks
- Service meshes as infrastructure-centric networking tools
- Overlap, coexistence, and non-equivalence
- Service-mesh quiz answer
- https://docs.dapr.io/getting-started/tutorials/
Supports
- Local Hello World tutorial for service invocation and state management
- Exercise and practice-reference setup
- https://docs.dapr.io/reference/cli/
Supports
- Local runtime initialization and application launch commands
- Sidecar inspection commands
- https://opensource.microsoft.com/blog/2019/10/16/announcing-dapr/
Supports
- 2019 project announcement timeline milestone
- https://blog.dapr.io/posts/2020/04/20/dapr-v0.7.0-is-now-available/
Supports
- 2020 service invocation and health-check timeline milestone
- https://blog.dapr.io/posts/2020/11/16/dapr-v0.11.0-is-now-available/
Supports
- 2020 pre-1.0 timeline milestone
- https://blog.dapr.io/posts/2021/02/17/announcing-dapr-v1.0/
Supports
- 2021 stable runtime timeline milestone
- https://www.cncf.io/announcements/2021/02/18/dapr-joins-the-cncf-sandbox/
Supports
- 2021 governance timeline milestone
- https://blog.dapr.io/posts/2022/04/08/dapr-v1.7-is-now-available/
Supports
- 2022 resiliency timeline milestone
- https://github.com/dapr/dapr/issues/5373
Supports
- 2023 workflow and configuration timeline milestone
- https://blog.dapr.io/posts/2024/08/14/dapr-v1.14-is-now-available/
Supports
- 2024 Jobs API timeline milestone
- https://www.cncf.io/announcements/2024/11/19/dapr-graduates-from-the-cloud-native-computing-foundation/
Supports
- 2024 graduation timeline milestone
- https://blog.dapr.io/posts/2021/02/09/running-dapr-in-production-at-roadwork/
Supports
- Practitioner perspective on portable Dapr deployments
- https://blog.dapr.io/posts/2022/04/05/how-dapr-helped-dedalow-accelerate-development-on-aws-and-azure/
Supports
- Field Note on platform ownership behind sidecar adoption
- https://www.diagrid.io/case-studies/watts-water
Supports
- Field Note on component migration and contract testing
- https://aws.amazon.com/blogs/opensource/expedite-production-ready-distributed-application-development-with-dapr-on-aws/
Supports
- Sidecar, component, and control-plane operational dependencies
- https://www.diagrid.io/blog/fault-tolerant-microservices-made-easy-with-dapr-resiliency
Supports
- Field Note on dependency-chain timeout measurement
- https://docs.diagrid.io/operate/hosting/
Supports
- Managed Dapr platform landscape entry
- https://learn.microsoft.com/en-us/azure/container-apps/dapr-overview
Supports
- Dapr-enabled application platform landscape entry
- https://docs.temporal.io/cloud/pricing
Supports
- Durable workflow platform landscape entry
- https://knative.dev/docs/eventing/
Supports
- Kubernetes eventing landscape entry
