Executing decision services
Decision services are executed by using a Kubernetes service. The decision runtime is a Kubernetes service for remotely executing decisions and managing decision service resources that are logically organized in deployment spaces. You can also execute decision services by using the execution Java API.
You can execute an explicit version of a decision service, or you can execute a selected decision service based on its latest version or deployment time. For more information, see Selecting decision services for execution.
A deployment space is a set of decision service archives and their associated metadata, and it is a logical way to group decisions. For example, a deployment space can be dedicated to a development phase (development, test, or production) or a group of users.
- Information about the decision service; for example, date of build, decision ID (decisionId), commit ID (commitId).
- Parameters that are used by the execution; for example, machine learning credentials
- User custom parameters
The same decision service archive can be added to different deployment spaces. However, a separate set of metadata exists for each decision service archive in each deployment space. For example, it can be used to enable different credentials for the machine learning service.
- Executing decisions
- Managing deployment spaces, decision service archives, and their associated metadata
- Retrieving a snapshot of the runtime state and configuration for diagnostic purposes
- Retrieving execution traces
The following figure shows the decision runtime architecture:

A decision runtime instance is deployed as a Kubernetes pod that is based on WebSphere® Application Server Liberty.
Each decision runtime instance is able to execute multiple distinct decisions. The runtime caches decision service archives and metadata to lower the cost of loading the decision service archives.
A deployed decision service archive cannot be modified. When a modifiable metadata is changed, the runtime automatically uses the new value after a configurable delay.
You can deploy any number of decision runtime replicas to scale and resist infrastructure failures. It can be done because they communicate only with the storage and do not need to communicate with each other.
The REST API and Swagger UI web application for the decision runtime are accessed externally through the IBM Cloud Pak Platform UI (Zen) front door. When single sign-on (SSO) is used, the Zen front door handles authentication and adds authorization information to the request that is sent to the decision runtime. These applications can use the Zen API key for authentication. For more information, see Authorizing HTTP requests by using the Zen API key.
Samples and tutorials
Several samples and tutorials show you how to execute a decision service. These samples and tutorials are available in GitHub. Click Automation Decision Services samples to be redirected to the GitHub repository.
- You can use the embedded build service in Decision Designer, and execute decision
services by using the generated OpenAPI methods in the Swagger UI facility:
- Task 6 in Getting started tutorial – You can use a basic decision service.
- Tutorial: Using an external library – You can use a decision service that uses an external library.
- Tutorial: Using machine learning to make better decisions – You can use a decision service that uses a predictive model.
- Tutorial: Using a decision service in an automation service – This tutorial illustrates how to execute an automation service in an application that is built with Application Designer.
- Tutorial: Testing a decision service at build time – You can add unit tests to your decision service that are run at build time.
- Sample: Exploring the execution trace – You can build an HTML page and explore execution traces.
- You can use a CI/CD stack:
- Sample: Loan validation application – This sample illustrates how to build a web application that calls a decision service. This decision service is deployed to a custom storage.
- Archives: You can use the delivered decision service archives ready to be executed in the runtime.
- You can use the execution Java API:
- Sample: Executing a decision service in Java – You can execute decision services by using the execution Java API, and display execution traces.
- Sample: Creating a web microservice for executing a decision service – You can create a web microservice to execute a decision service. You can use a decision service with or without a predictive model.