|
3 | 3 | [id="con-architecture-overview.adoc_{context}"] |
4 | 4 | = Architecture overview |
5 | 5 |
|
6 | | -You can use Orchestrator to design, run, and monitor workflows that automate key tasks. The Orchestrator relies on core components, such as SonataFlow and OpenShift Serverless, to provide the necessary runtime environment and event-driven capabilities needed to power your workflows. |
7 | | - |
8 | | -image::rhdh/system-context-diagram-orch.png[] |
9 | | - |
10 | | -The Orchestrator architecture is composed of several integral components, each contributing to the seamless execution and management of workflows. |
11 | | - |
12 | | -image::rhdh/container-diagram-orch.png[] |
13 | | - |
14 | | -The following is a breakdown of these components: |
| 6 | +The Orchestrator architecture is composed of several integral components, each contributing to the seamless running and management of workflows. |
15 | 7 |
|
16 | 8 | {product} ({product-very-short}):: Serves as the primary interface. {product-custom-resource-type} fulfills the following roles: |
17 | 9 |
|
18 | | -* Orchestrator Plugins: Both frontend and backend present deployed workflows for execution and monitoring. |
19 | | -* Notifications Plugin: Inform users about workflow events. |
| 10 | +* Orchestrator Plugins: Both frontend and backend plugins provide the interface and necessary data retrieval for users to run and monitor workflows within {product-very-short}. |
| 11 | +* Notifications Plugin: Informs users about workflow events. |
20 | 12 |
|
21 | | -image::rhdh/orchestrator-plugins.png[] |
| 13 | +OpenShift Serverless Logic Operator:: Manages the Sonataflow custom resource (CR), where each CR represents a deployed workflow. |
22 | 14 |
|
23 | | -OpenShift Serverless Logic Operator:: This controller manages the Sonataflow custom resource (CR), where each CR denotes a deployed workflow. |
24 | | - |
25 | | -Sonataflow Runtime/Workflow Application:: Functions as a deployed workflow. Sonataflow Runtime is managed as a Kubernetes (K8s) deployment by the Operator. It operates as an HTTP server catering to requests for executing workflow instances. Within the Orchestrator deployment, each Sonataflow custom resource (CR) corresponds to a singular workflow. However, outside this scope, Sonataflow Runtime can handle multiple workflows. The Orchestrator backend plugin facilitates the interaction with Sonataflow Runtime for workflow execution. |
| 15 | +Sonataflow Runtime/Workflow Application:: Functions as a deployed workflow. Operates as an HTTP server, catering to requests for running workflow instances. Sonataflow Runtime is managed as a Kubernetes (K8s) deployment by the Openshift Serverless Logic Operator. Within the Orchestrator deployment, each Sonataflow custom resource (CR) corresponds to a singular workflow. However, outside this scope, Sonataflow Runtime can handle multiple workflows. The Orchestrator backend plugin facilitates the interaction with Sonataflow Runtime for workflow execution. |
26 | 16 |
|
27 | 17 | Data Index Service:: Serves as a repository for workflow definitions, instances, and associated jobs. It exposes a GraphQL API used by the Orchestrator backend plugin to retrieve workflow definitions and instances. |
28 | 18 |
|
29 | | -Job Service:: Dedicated to orchestrating scheduled tasks for workflows. |
30 | | - |
31 | | -OpenShift Serverless:: This Operator furnishes serverless capabilities essential for workflow communication. It employs Knative eventing to interface with the Data Index service and uses Knative functions to introduce more intricate logic to workflows. |
32 | | - |
33 | | -PostgreSQL Server:: PostgreSQL Server provides a robust and reliable database solution essential for data persistence within the Orchestrator ecosystem. The system uses PostgreSQL Server for storing both Sonataflow information and {product-custom-resource-type} data. |
34 | | - |
35 | | -KeyCloak:: KeyCloak is essential for authentication and security services within applications. KeyCloak must be provisioned externally to manage authentication, as the Orchestrator Operator does not install it. |
| 19 | +Job Service:: Orchestrates scheduled tasks for workflows. |
36 | 20 |
|
37 | | -OpenShift AMQ Streams (Strimzi/Kafka):: This Operator is crucial for ensuring the reliability of the eventing system. While the eventing can work without Kafka by using direct HTTP calls, this approach is not reliable. The AMQ Streams Operator is not natively present or integrated into the deployment current iteration. |
| 21 | +OpenShift Serverless:: Furnishes serverless capabilities essential for workflow communication. It employs Knative eventing to interface with the Data Index service and uses Knative functions to introduce more intricate logic to workflows. |
38 | 22 |
|
39 | | -{product-very-short} includes the following Orchestrator plugin components in the `dynamic-plugins.default.yaml` file, but it disables them by default: |
| 23 | +PostgreSQL Server:: Provides a robust and reliable database solution essential for data persistence within the Orchestrator ecosystem. The system uses PostgreSQL Server for storing both Sonataflow information and {product-custom-resource-type} data. |
40 | 24 |
|
41 | | -* `"backstage-plugin-orchestrator"` |
42 | | -* `"backstage-plugin-orchestrator-backend-dynamic"` |
43 | | -* `"backstage-plugin-scaffolder-backend-module-orchestrator-dynamic"` |
44 | | -* `"backstage-plugin-orchestrator-form-widgets"` |
| 25 | +KeyCloak:: Provides authentication and security services within applications. KeyCloak must be provisioned externally to manage authentication, as the Orchestrator Operator does not install it. |
45 | 26 |
|
46 | | -To enable these plugins, you must set the `plugins.disabled` parameter to `false`. |
| 27 | +OpenShift AMQ Streams (Strimzi/Kafka):: Ensures the reliability of the eventing system. While the eventing can work without Kafka by using direct HTTP calls, this approach is not reliable. The AMQ Streams Operator is not natively present or integrated into the deployment current iteration. |
0 commit comments