Skip to main content

Dapr

Dapr (Distributed Application Runtime) is an open-source, portable, event-driven runtime that provides building blocks for cloud-native and microservices applications (application runtime / microservices framework).

  • Sidecar-based runtime offering pluggable building blocks for service invocation, state management, publish/subscribe messaging, and bindings (application runtime).
  • Supports integration with diverse state stores, message brokers, and external systems through a component model (integration middleware).
  • Provides service-to-service invocation with built-in observability, resiliency, and distributed tracing hooks (service communication / observability).
  • Enables event-driven and workflow-style architectures through Publish–Subscribe Pattern (Pub/Sub) and bindings abstractions (event-driven architecture).
  • Runs on multiple hosting environments including Kubernetes, virtual machines, and edge scenarios (multi-environment deployment).

More About Dapr

Dapr (Distributed Application Runtime) addresses the problem of building distributed, cloud-native applications by providing a set of standardized building blocks (application runtime / microservices framework) that abstract common concerns such as service invocation, state management, and eventing. It is designed as a portable runtime that can run on Kubernetes, on virtual machines, or in edge environments, allowing application code to target consistent APIs while the underlying infrastructure and components can vary.

Dapr is structured around a sidecar architecture (service sidecar pattern), where each application service communicates with a local Dapr sidecar over Hypertext Transfer Protocol (HTTP) or gRPC. The sidecar exposes building block APIs for service-to-service invocation (service communication), state management (state store abstraction), publish/subscribe messaging (event-driven messaging), resource bindings (integration connectors), actors (virtual actor pattern), and secrets management (secrets integration). These building blocks are accessed using standardized APIs, while Dapr components configure concrete implementations such as databases, caches, message brokers, and secret stores.

The Dapr component model (integration middleware) allows operators and platform teams to configure state stores, Pub/Sub brokers, input/output bindings, and secret stores declaratively via YAML. This model separates application logic from infrastructure dependencies. Enterprises can plug in supported technologies for storage, messaging, and security without modifying application code, and can change or migrate these backends by updating component definitions. Dapr also exposes observability features, including metrics, tracing, and logs integration (observability / telemetry), enabling integration with existing monitoring and tracing stacks.

In enterprise environments, Dapr can run on Kubernetes (container orchestration) through the Dapr control plane and sidecar injection, or on self-hosted infrastructures for workloads on virtual machines or edge devices. It offers features such as mTLS between sidecars (service-to-service security) when used with the control plane, and supports policy-driven configuration of components. Application developers interact with Dapr through SDKs and APIs in multiple programming languages, while platform engineers manage configuration, security, and deployment of the runtime.

From a technical categorization perspective, Dapr fits into the domains of application runtime for microservices, service connectivity, stateful application support, and event-driven systems. It serves as an abstraction and integration layer that sits above infrastructure services such as message brokers, databases, and secret stores, and alongside orchestrators like Kubernetes. Its building block model supports interoperability across heterogeneous environments and provides a consistent approach to implementing distributed system patterns in enterprise and institutional software architectures.