Skip to main content

Dapr Compatibility

Diagrid Catalyst is deeply rooted in open source, created by the founders of the CNCF-backed Distributed Runtime API (Dapr) project. With Catalyst, developers can leverage the power of existing industry-standard Dapr APIs from any application hosting platform without the operational overhead of running Dapr and likely, Kubernetes.

This document provides insight into where Dapr fits into Catalyst and outlines unsupported features and/or limitations.

Dapr APIs

The current set of Catalyst APIs can be viewed as a set of hosted Dapr APIs, accessible from anywhere. The Dapr APIs available through Catalyst can be called using the existing Dapr SDKs by changing the Dapr host configuration. The following table provides a high-level overview on which APIs are supported in Catalyst today.

Dapr APISupport Level
Service InvocationSupported
State ManagementSupported
Pub/SubSupported
BindingsSupported
WorkflowSupported
ActorsUnsupported
SecretsUnsupported
ConfigurationUnsupported
Distributed LockUnsupported

Securing Dapr APIs

Dapr provides two optional capabilities for securing communication between an application and its associated Dapr sidecar/process:

  • Dapr API token authentication: Require API requests from your application to the Dapr sidecar to include an authentication token.
  • App API token authentication: Require API requests from Dapr to your application to include an authentication token.

In Catalyst, Dapr API and App token authentication are enabled out-of-the-box and required. Each Application ID has an API token which must be used when initiating requests to the Catalyst APIs, and each request from the hosted App ID to an externally running application will have an App token. Although recommended, it is up to you if you want to validate the Catalyst App token in your code or not.

Support Limitations for APIs

  • The Workflow API is only supported in the Dapr Dotnet and Python SDKs, but currently not in the Java SDK.
  • HTTPEndpoint, Configuration (including Middleware) and custom Resiliency resources are not supported.
  • Programmatic subscriptions are not supported.

Dapr Components

Diagrid Catalyst Connections map specifically to the set of stable components in the Dapr open source project. All credentials and secure values included in a component file are automatically stored by Catalyst as encrypted secret values.

Importing/Exporting Dapr manifests

Catalyst Connections are modeled after Dapr Component specifications and can be translated to and from the Dapr Component format to maintain compatibility with the open source project. To translate a Dapr Component into a Catalyst Connection, use the diagrid dapr import command, passing in the related Dapr Component YAML manifest. To export a Catalyst Connection as a Dapr-compliant Component manifest, use the diagrid dapr export command along with the name of the Connection you want to export.

You can also import Dapr manifests using the Catalyst console by selecting Skip to import OSS Dapr Yaml during the Connection creation process.

Support Limitations for Components

  • Components in Alpha or Beta stage.
  • The following stable Components: K/V Stores (In-memory, SQLite), Pub/Sub Broker (In-memory), Bindings (Cron, Local Storage).
  • Connection authentication to Azure via Microsoft Entra ID (formerly Azure Active Directory) Managed Identities

Dapr Resiliency

Catalyst applies resiliency policies on Application Identities and Connections automatically. These default resiliency policies can be enabled or disabled at any time.

Support Limitations for Resiliency

  • Editing the default resiliency policy values.
  • Importing existing Dapr Resiliency policies.
  • Creating custom resiliency policies.