Pluggable components overview
Pluggable components are components that are not included as part the runtime, as opposed to the built-in components included with . You can configure Dapr to use pluggable components that leverage the building block APIs, but are registered differently from the built-in Dapr components.
Dapr provides two approaches for registering and creating components:
- The built-in components included in the runtime and found in the components-contrib repository.
- Pluggable components which are deployed and registered independently.
Pluggable components prove useful in scenarios where:
- You require a private component.
- You want to keep your component separate from the Dapr release process.
In order to implement a pluggable component, you need to implement a gRPC service in the component. Implementing the gRPC service requires three steps:
- Find the proto definition file
- Create service scaffolding
- Define the service
Learn more about how to develop and implement a pluggable component
Leverage multiple building blocks for a component
While exposing multiple component interfaces on the same pluggable component lowers the operational burden of deploying multiple components, it makes implementing and debugging your component harder. If in doubt, stick to a “separation of concerns” by merging multiple components interfaces into the same pluggable component only when necessary.
Built-in components and pluggable components share one thing in common: both need a . Built-in components do not require any extra steps to be used: Dapr is ready to use them automatically.
In contrast, pluggable components require additional steps before they can communicate with Dapr. You need to first run the component and facilitate Dapr-component communication to kick off the registration process.