Service Invocation API
The Catalyst Service Invocation API allows your applications to discover and communicate with other applications using standard gRPC or HTTP protocols across any cloud or compute platform. This pattern is useful when two services are tightly coupled and need to communicate synchronously. See Invocation API Reference.
In many microservice-based applications, multiple services need the ability to communicate with one another. This inter-service communication requires that application developers handle problems like:
- Service discovery. How do I discover my different services?
- Standardizing API calls between services. How do I invoke methods between services?
- Secure inter-service communication. How do I call other services securely with encryption and apply access control on the methods?
- Mitigating request timeouts or failures. How do I handle retries and transient errors?
- Implementing observability and tracing. How do I use tracing to see a call graph with metrics to diagnose issues in production?
Catalyst helps address these challenges through a standardized, resilient, secure, and observable API.
The Catalyst Service Invocation API acts as a reverse proxy with built-in service discovery, tracing, metrics, error handling, encryption and more. This API does not depend on the existence of any infrastructure components, but rather requires an invocable App ID which is configured with an application endpoint. To read more about App ID connectivity, see App IDs
When using Service Invocation through Catalyst:
- Your application service makes an encrypted request using its App ID Token to the Catalyst Service Invocation API, targeting a specific App ID.
- Catalyst routes the request to through the appropriate App ID to the app endpoint of the target application.
Features
Below describe some of the features and characteristics of the Catalyst Service Invocation API.
Access control
Through App ID access policies, you can control which applications are allowed to call others. For example, you can restrict sensitive applications with personnel information from being accessed by unauthorized applications. To set access control policies for a specific App ID, use the diagrid appid trust
command.
Try the Service Invocation API
Walk through the following quickstart to see Invocation in action:
Quickstart/tutorial | Description |
---|---|
Invocation API Quickstart | Implement the request/reply pattern |