|
| 1 | +:_mod-docs-content-type: CONCEPT |
| 2 | + |
| 3 | +[id="con-architecture-overview.adoc_{context}"] |
| 4 | += Architecture overview |
| 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 | +The Orchestrator architecture is composed of the following several integral components, each contributing to the seamless execution and management of workflows: |
| 9 | + |
| 10 | +{product} ({product-very-short}):: Serves as the primary interface. {product-custom-resource-type} fulfills the following roles: |
| 11 | + |
| 12 | +* Orchestrator Plugins: Both frontend and backend present deployed workflows for execution and monitoring. |
| 13 | +* Notifications Plugin: Inform users about workflow events. |
| 14 | + |
| 15 | +OpenShift Serverless Logic Operator:: This controller manages the Sonataflow custom resource (CR), where each CR denotes a deployed workflow. |
| 16 | + |
| 17 | +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. |
| 18 | + |
| 19 | +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. |
| 20 | + |
| 21 | +Job Service:: Dedicated to orchestrating scheduled tasks for workflows. |
| 22 | + |
| 23 | +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. |
| 24 | + |
| 25 | +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. |
| 26 | + |
| 27 | +KeyCloak:: KeyCloak is essential for enhancing security measures by being responsible for authentication and security services within applications. KeyCloak must be provisioned externally to manage authentication, as the Orchestrator Operator does not install it. |
| 28 | + |
| 29 | +OpenShift AMQ Streams (Strimzi/Kafka):: This Operator is crucial for ensuring the reliability of the eventing system. It is not presently integrated into the deployment current iteration. |
| 30 | + |
| 31 | + |
| 32 | +The `dynamic-plugins.default.yaml` file includes the following Orchestrator plugin components, but disables them by default: |
| 33 | + |
| 34 | +* `"backstage-plugin-orchestrator"` |
| 35 | +* `"backstage-plugin-orchestrator-backend-dynamic"` |
| 36 | +* `"backstage-plugin-scaffolder-backend-module-orchestrator-dynamic"` |
| 37 | +* `"backstage-plugin-orchestrator-form-widgets"` |
| 38 | + |
| 39 | +To enable these plugins, you must set the `plugins.disabled` parameter to `false`. |
0 commit comments