dapr/dapr

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

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 12 minutes ago
Added to GitGenius on November 13th, 2024
Created on June 19th, 2019
Open Issues & Pull Requests: 430 (+0)
Number of forks: 2,134
Total Stargazers: 26,031 (+0)
Total Subscribers: 397 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 5.5 days
Mean response time: 145.0 days
90th percentile: 524.9 days
Tracked items: 780

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 86% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "P0" is answered fastest, typically in about 13 hours, while "triaged/resolved" waits about 40 months. Almost all tracked open issues have seen activity in the last three months. Only 5% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 327
New in 7 days: 4
Closed in 7 days: 5
Avg open age: 1,189 days
Stale 30+ days: 298
Stale 90+ days: 256

Recent activity

Opened in 7 days: 3
Closed in 7 days: 3
Comments in 7 days: 2
Events in 7 days: 6

Top labels

  • kind/bug (1,386)
  • stale (1,263)
  • kind/enhancement (524)
  • P1 (440)
  • pinned (301)
  • kind/feature (224)
  • P2 (196)
  • good first issue (159)

Detailed Description

Dapr is an open-source distributed application runtime written in Go that enables developers to build microservices, workflows, and AI agents across cloud and edge environments. The project functions as a sidecar that provides a consistent set of APIs accessible over HTTP and gRPC, eliminating the need for language-specific frameworks and allowing applications written in .NET, Java, Python, Go, JavaScript, TypeScript, and Rust to access its capabilities without framework lock-in.

The runtime addresses core challenges in distributed systems by providing durable execution for workflows and AI agents that automatically persist progress and resume from the last completed step after failures such as process crashes, pod restarts, node failures, or rolling deployments. This capability means applications do not restart from the beginning when infrastructure interruptions occur. Dapr's workflow system allows developers to author long-running processes as ordinary code in their language of choice, with automatic recovery handled by the runtime without requiring additional database or state-machine code.

Security is built into Dapr's architecture rather than added as an afterthought. Every application receives a cryptographically verifiable identity, with mutual TLS protecting all service-to-service traffic. The runtime provides workload identity and authentication, fine-grained authorization policies, secret management integration with external vaults, and automatic certificate issuance and rotation. This zero-trust communication model allows platform teams to enforce least-privilege access controls across entire environments.

The platform offers a comprehensive set of distributed application APIs including service invocation with built-in retries and observability, state management across dozens of stores without database coupling, pub/sub messaging with at-least-once delivery guarantees, actor-based stateful applications, conversation APIs for LLM integration with prompt caching and tool calling, bindings for external system integration, secrets management, configuration management, distributed locking, cryptography operations, and job scheduling. All these capabilities work identically across Kubernetes, AWS, Azure, Google Cloud, virtual machines, bare metal, edge environments, and air-gapped deployments.

Dapr is a graduated Cloud Native Computing Foundation project used by organizations worldwide for mission-critical applications. The runtime is lightweight, consuming approximately 58MB of binary size and 4MB of memory, and requires no application code changes when moving between platforms. The project emphasizes incremental adoption, allowing teams to integrate Dapr APIs one at a time while maintaining complete portability across infrastructure providers and deployment environments.