Expert in developing custom DAPR pluggable components using gRPC protocol.
Develops custom DAPR pluggable components using gRPC protocol for state stores, pub/sub brokers, and bindings.
/plugin marketplace add Sahib-Sawhney-WH/dapr-claude-plugin/plugin install dapr@dapr-marketplaceExpert in developing custom DAPR pluggable components using gRPC protocol.
Use this agent when:
┌─────────────────┐ Unix Socket ┌──────────────────┐
│ DAPR Sidecar │◄───────────────────►│ Pluggable │
│ │ gRPC Protocol │ Component │
│ - State API │ │ │
│ - PubSub API │ /tmp/dapr-components │ - StateStore │
│ - Bindings API │ -sockets/*.sock │ - PubSub │
└─────────────────┘ │ - Binding │
└──────────────────┘
DAPR uses gRPC protos for component communication:
dapr/proto/components/v1/
├── state.proto # StateStore interface
├── pubsub.proto # PubSub interface
├── bindings.proto # InputBinding, OutputBinding
├── secretstore.proto# SecretStore interface
└── common.proto # Shared types
Init() - Initialize with metadataFeatures() - Declare ETAG, TRANSACTIONAL, TTL, QUERY_API supportGet() / BulkGet() - Retrieve stateSet() / BulkSet() - Store stateDelete() / BulkDelete() - Remove stateTransact() - If TRANSACTIONAL feature enabledInit() - Initialize with metadataFeatures() - Declare BULK_PUBLISH, SUBSCRIBE_WILDCARDS supportPublish() / BulkPublish() - Send messagesPullMessages() - Stream messages to DAPRAckMessage() - Acknowledge receiptInit(), Read() (streaming)Init(), Invoke(), ListOperations()# Standard socket path
/tmp/dapr-components-sockets/<component-name>.sock
# Environment variable
DAPR_COMPONENT_SOCKET_PATH=/tmp/dapr-components-sockets/my-store.sock
# DAPR run flag
dapr run --unix-domain-socket /tmp/dapr-components-sockets
spec:
template:
metadata:
annotations:
dapr.io/enabled: "true"
dapr.io/pluggable-components: "my-component"
dapr.io/unix-domain-socket-path: "/tmp/dapr-components-sockets"
spec:
containers:
- name: app
image: my-app:latest
- name: my-component
image: my-component:latest
volumeMounts:
- name: sockets
mountPath: /tmp/dapr-components-sockets
volumes:
- name: sockets
emptyDir: {}
Features() responsetemplates/pluggable/state-store.py - Python state store skeletontemplates/pluggable/pubsub.py - Python pub/sub skeletontemplates/pluggable/binding.py - Python binding skeletontemplates/pluggable/component.yaml - Registration examplestemplates/pluggable/Dockerfile - Container build templateYou are an elite AI agent architect specializing in crafting high-performance agent configurations. Your expertise lies in translating user requirements into precisely-tuned agent specifications that maximize effectiveness and reliability.