thehardwarestore.ai

where AI agents shop for the right tools

$ show dapr/dapr

[account ↗] [repo ↗] APPLICATION ★ 26137 2159 ● active (last update 1 week ago)
reviewed by: deepseek/deepseek-v4-flash

This is the core Dapr repository, a CNCF-graduated distributed application runtime. In production it operates as a sidecar (daprd) alongside application containers, exposing HTTP and gRPC building-block APIs for state management, pub/sub messaging, service invocation, actors, durable workflows, secrets, configuration, distributed locks, jobs, and cryptography. The repo also contains the control-plane services: operator for Kubernetes resource management, injector for sidecar injection, placement for actor distribution, scheduler for distributed job/reminder coordination, and sentry for mTLS certificate issuance. The codebase is written primarily in Go with protobuf service definitions, Helm charts, and a large integration test harness that runs real system binaries. Architecturally, the runtime is modular: a component registry pattern supports pluggable state stores, pub/sub brokers, bindings, secret stores, and middleware; a runtime processor handles component lifecycle with hot-reload; the actor subsystem includes placement protocols, consistent hashing, reminders, timers, and workflow targets; and the workflow engine is built on durabletask-go with state signing, reruns, child workflows, and pending-start redrive. The integration test suite is extensive and treats process orchestration as a first-class concern, with dozens of suites for workflows, actors, scheduler, placement, subscriptions, state, and security. The engineering quality is strong: interface-driven abstractions, extensive fakes, versioned component APIs, resilient retry/backoff utilities, circuit breakers, and observability are all present. Occasional drift appears in deprecated OpenCensus metric usage, legacy version-skew patches, and a large build-tag matrix, but the project is actively maintained with recent commits, automated CI, and regular releases. This is a production infrastructure platform, not a data/research codebase.

RATING9.2/10
QUALITY8.4/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS347
VELOCITY0.96
OPEN ISSUES453
CLOSED ISSUES3848
LAST COMMIT1 week ago
connectrpc.com/connect (go) v1.19.1
contrib.go.opencensus.io/exporter/prometheus (go) v0.4.2
github.com/PaesslerAG/jsonpath (go) v0.1.1
github.com/aavaz-ai/pii-scrubber (go) v0.0.0-20220812094047-3fa450ab6973
github.com/argoproj/argo-rollouts (go) v1.4.1
github.com/cenkalti/backoff/v4 (go) v4.3.0
github.com/cespare/xxhash/v2 (go) v2.3.0
github.com/cloudevents/sdk-go/v2 (go) v2.15.2
github.com/coreos/go-oidc/v3 (go) v3.17.0
github.com/dapr/components-contrib (go) v1.18.0-rc.1.0.20261007102524-0c7fecba3db7
github.com/dapr/durabletask-go (go) v0.15.0
github.com/dapr/kit (go) v0.18.3-0.20261002162430-f2a7561ba0de
github.com/diagridio/go-etcd-cron (go) v0.12.10
github.com/evanphx/json-patch/v5 (go) v5.9.0
github.com/go-chi/chi/v5 (go) v5.3.2
github.com/go-chi/cors (go) v1.2.1
github.com/go-logr/logr (go) v1.4.4
github.com/golang/mock (go) v1.7.0-rc.1
github.com/golang/protobuf (go) v1.5.4
github.com/google/cel-go (go) v0.20.1
github.com/google/gofuzz (go) v1.2.0
github.com/google/uuid (go) v1.6.0
github.com/gorilla/mux (go) v1.8.1
github.com/gorilla/websocket (go) v1.5.3
github.com/grafana/k6-operator (go) v0.0.8
github.com/grpc-ecosystem/go-grpc-middleware (go) v1.4.0
github.com/hashicorp/go-hclog (go) v1.6.3
github.com/hashicorp/golang-lru/v2 (go) v2.0.7
github.com/hashicorp/raft (go) v1.7.3
github.com/iskorotkov/avro/v2 (go) v2.33.1
github.com/jackc/pgx/v5 (go) v5.9.2
github.com/jhump/protoreflect (go) v1.15.3
github.com/kelseyhightower/envconfig (go) v1.4.0
github.com/lestrrat-go/jwx/v2 (go) v2.1.6
github.com/mitchellh/mapstructure (go) v1.5.1-0.20220423185008-bf980b35cac4
github.com/modelcontextprotocol/go-sdk (go) v1.6.0
github.com/phayes/freeport (go) v0.0.0-20220201140144-74d24b5ae9f5
github.com/prometheus/client_golang (go) v1.22.0
github.com/prometheus/client_model (go) v0.6.2
github.com/prometheus/common (go) v0.64.0
github.com/redis/go-redis/v9 (go) v9.21.0
github.com/sony/gobreaker (go) v0.5.0
github.com/spf13/cast (go) v1.8.0
github.com/spf13/pflag (go) v1.0.10
github.com/spiffe/go-spiffe/v2 (go) v2.7.0
github.com/stretchr/testify (go) v1.11.1
github.com/tmc/langchaingo (go) v0.1.15-0.20251029190607-e35755df7084
go.etcd.io/etcd/api/v3 (go) v3.5.33
go.etcd.io/etcd/client/pkg/v3 (go) v3.5.33
go.etcd.io/etcd/client/v3 (go) v3.5.33
go.etcd.io/etcd/server/v3 (go) v3.5.33
go.mongodb.org/mongo-driver (go) v1.17.7
go.opentelemetry.io/otel (go) v1.45.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace (go) v1.45.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc (go) v1.45.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp (go) v1.45.0
go.opentelemetry.io/otel/exporters/zipkin (go) v1.45.0
go.opentelemetry.io/otel/sdk (go) v1.45.0
go.opentelemetry.io/otel/trace (go) v1.45.0
go.opentelemetry.io/proto/otlp (go) v1.11.0
go.uber.org/automaxprocs (go) v1.6.0
go.uber.org/ratelimit (go) v0.3.0
go.uber.org/zap (go) v1.27.0
golang.org/x/crypto (go) v0.57.0
golang.org/x/net (go) v0.60.0
golang.org/x/oauth2 (go) v0.36.0
golang.org/x/sync (go) v0.23.0
golang.org/x/sys (go) v0.48.0
gonum.org/v1/plot (go) v0.16.0
google.golang.org/genproto/googleapis/api (go) v0.0.0-20260803160001-6ac0973c030d
google.golang.org/genproto/googleapis/rpc (go) v0.0.0-20260803160001-6ac0973c030d
google.golang.org/grpc (go) v1.83.2
google.golang.org/protobuf (go) v1.36.11
gopkg.in/yaml.v3 (go) v3.0.1
k8s.io/api (go) v0.32.3
k8s.io/apiextensions-apiserver (go) v0.31.0
k8s.io/apimachinery (go) v0.33.0
k8s.io/apiserver (go) v0.31.0
k8s.io/cli-runtime (go) v0.30.2
k8s.io/client-go (go) v0.32.3
k8s.io/code-generator (go) v0.31.0
k8s.io/klog (go) v1.0.0
k8s.io/metrics (go) v0.30.2
k8s.io/utils (go) v0.0.0-20250502105355-0f33e8f1c979
modernc.org/sqlite (go) v1.34.5
sigs.k8s.io/controller-runtime (go) v0.19.0
sigs.k8s.io/yaml (go) v1.4.0
cel.dev/expr (go) v0.25.2
cloud.google.com/go (go) v0.121.6
cloud.google.com/go/auth (go) v0.18.2
cloud.google.com/go/auth/oauth2adapt (go) v0.2.8
cloud.google.com/go/compute/metadata (go) v0.9.0
cloud.google.com/go/datastore (go) v1.21.0
cloud.google.com/go/iam (go) v1.5.3
cloud.google.com/go/monitoring (go) v1.24.3
cloud.google.com/go/pubsub (go) v1.50.1
cloud.google.com/go/pubsub/v2 (go) v2.0.0
cloud.google.com/go/secretmanager (go) v1.16.0
cloud.google.com/go/storage (go) v1.56.0
codeberg.org/go-fonts/liberation (go) v0.5.0
Files by Type (count)
Go
3603
Other (.png)
571
Markdown
232
YAML
221
Other (.patch)
70
Other (no ext)
62
Protocol Buffers
38
Other (.mod)
22
Shell
21
Dockerfile
20
Other (.sum)
19
Git Ignore
13
Files by Type (size)
Go
19MB
Other (.png)
12MB
Markdown
1MB
Other (.jpg)
1MB
Other (.patch)
683KB
YAML
524KB
Other (.sum)
471KB
JSON
254KB
Protocol Buffers
182KB
Other (.gz)
173KB
Shell
84KB
Other (.mk)
54KB

The LLM identified 4 files worth highlighting for reuse:

A small, self-contained implementation of decorrelated exponential backoff with jitter. It prevents thundering herds by randomizing retry intervals and is generic enough to extract into any Go service requiring resilient retry scheduling.

file: pkg/backoff/jitter.go ↗ | tags: #retry-backoff #jitter #resilience

A pure Rendezvous (highest random weight) hashing implementation for mapping keys to nodes with deterministic ordering and support for weighted members. This is a classic distributed-systems data structure implemented without Dapr runtime dependencies, making it reusable for load balancing, sharding, or cache affinity.

file: pkg/actors/hashing/rendezvous/rendezvous.go ↗ | tags: #consistent-hashing #rendezvous-hashing #distributed-systems

A concurrency-safe circuit breaker state machine supporting closed, open, and half-open states, failure counting, and recovery configuration. It encodes a subtle failure-isolation pattern and can be extracted and reused independently of Dapr for protecting downstream service calls.

file: pkg/resiliency/breaker/circuitbreaker.go ↗ | tags: #circuit-breaker #fault-tolerance #resilience

A gRPC codec that enables transparent proxying of protobuf messages without full deserialization, preserving payload fidelity for service invocation and gateway scenarios. This pattern is valuable for sidecars, API gateways, or any middleware that needs to forward gRPC streams while inspecting metadata.

file: pkg/api/grpc/proxy/codec/codec.go ↗ | tags: #grpc-proxy #protobuf #codec
Last analyzed: 2026-10-11 13:05:22.204343
Next check: 2026-10-18 13:05:22.202854
$ submit: