Catalyst APIs
Diagrid Catalyst enables developers to more productively build secure, reliable, observable applications.
Developing applications using a cloud-native approach has benefits and challenges; the growth in software tooling, languages and platforms has led to a high-degree of developer complexity and friction. Catalyst alleviates these challenges by consolidating and exposing development patterns and infrastructure connectivity through an API abstraction layer backed by open source Dapr.
Development Pattern APIs powered by Dapr
Catalyst exposes Dapr-conformant development APIs through a single entrypoint, streamlining everything from messaging to state management so you can build apps quickly while gaining full visibility into your system.
Diagrid Catalyst is a suite of hosted APIs that conform to the Dapr open-source standard. Today Catalyst provides support for the following Dapr APIs:
- Pub/Sub API: Implements a loosely coupled messaging pattern where "publisher apps" publish messages to a topic, to which "subscriber apps" subscribe.
- State API: Provides persistent key/value store access and management.
- Service Invocation API: Enables applications to discover, communicate and invoke endpoints across clouds, regions and compute platforms using built-in identity.
- Workflow API: Enables long-running, stateful and fault-tolerant applications or data flows that orchestrate business processes.
- Bindings API: Invoke external services from your application or trigger application logic based on events from an external cloud or on-premises service.
Setting | Dapr OSS | Catalyst |
---|---|---|
Dapr hosting | Dapr is self-hosted as a sidecar container running on Kubernetes and co-located in the same pod as an application workload. | The Dapr sidecars are hosted and managed by Catalyst. The Dapr APIs can be accessed by application workloads running on any platform by creating secure App IDs. There is no need to managed or install Dapr when using Catalyst. |
Code-first APIs | Dapr developers use the Dapr SDKs or native HTTP or gRPC clients to invoke the APIs exposed by the Dapr sidecars. | Developers can use the exact same approach as Dapr OSS. Using the Dapr SDKs is the recommended approach for connecting to the Catalyst APIs. Learn more |
Local development | Dapr processes are run locally on the developer's workstation or Dapr is deployed into a development Kubernetes cluster. | No Dapr dependencies are required to develop with Catalyst. Catalyst rather connects to your local applications, supporting a hybrid development flow. Learn more |
CLI-based testing | Dapr provides a set of commands to invoke the Dapr sidecar directly for testing the APIs ex. dapr invoke , dapr publish | Catalyst provides a similar set of commands to invoke the APIs for a given App ID through the diagrid call command. In addition, the diagrid listen command allows you to mock an application listener on an App ID. |
For additional details on the APIs and their specifications, see Catalyst APIs.
Infrastructure abstraction
The Catalyst-hosted Dapr APIs provide an abstraction layer on top of infrastructure dependencies. Consider the infrastructure dependencies required to implement each of the API patterns above:
- Pubsub messaging: Message broker
- State management: Key/Value data store
- Workflow orchestration: Workflow data store
- Input/Output bindings: External service server to invoke or receive events from
Catalyst allows you to remove these direct dependencies from your application code, creating a consistent interface to backend infrastructure. Through the concept of "Components", you can connect to many different infrastructure providers to power the Dapr APIs.
In addition to supporting external cloud infrastructure components, Catalyst also provides easy-to-use, Diagrid-hosted infrastructure services which eliminate the overhead of deploying and managing message brokers and state stores.
Next steps
To dive deeper into concepts related to connecting your code and infrastructure to Catalyst, visit the following docs: