Fusion Microservices
Overview
The table below lists the Fusion microservices deployed by our Helm chart. Recognize that Fusion is a complex distributed application composed of many stateful and stateless services designed to support demanding search-oriented workloads at high scale.
Microservice | Protocol | Deployment or StatefulSet | Node Pool Assignment | Autoscaling Supported | Description |
---|---|---|---|---|---|
|
REST/HTTP |
Deployment |
|
Not required. Minimum of 1 but 2 pods are recommended for HA |
Exposes endpoints for admin tasks, such as creating applications and running jobs. |
|
Web |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Serves static Web assets for the admin UI. |
|
HTTP |
Deployment |
|
Yes (CPU or custom metric) |
Orchestrates parallel jobs on Kubernetes. |
|
Web |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Stores logs and prior Argo workflow runs. |
|
Web |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Serves static Web assets for the login form. |
|
HTTP |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Synchronizes config between GitHub and Fusion. |
|
REST/HTTP |
StatefulSet |
|
Yes (CPU or custom metric) |
REST service for supporting non-RPC connector plugins. |
|
REST/HTTP |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Routes REST API requests to connectors-classic and connectors-rpc. |
|
gRPC |
Deployment |
|
Yes (CPU or custom metric) |
gRPC service for managing SDK-based connector plugins. |
|
HTTP/TCP |
Deployment |
|
Yes (CPU or custom metric) |
Deployment for each connector plugin type. Note: There is a base deployment, |
|
Web |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Serves static Web assets for the DevOps UI. |
|
REST/HTTP |
Deployment |
|
Yes (CPU or custom metric) |
Processes indexing requests. |
|
Web |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Serves the App Insights UI |
|
REST/HTTP |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Configures and aunches the Spark driver pod for running Spark jobs |
|
REST/HTTP |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Performs admin tasks for creating and running Spark jobs. |
|
HTTP |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Jupyter notebook for ad hoc analytics and visualization. |
|
HTTP |
StatefulSet |
|
Not required. Minimum of 1 but 2 pods are recommended for HA |
Collects logs from the other microservices and either indexes into system_logs or ships them to an external service like Elastic |
|
REST/HTTP |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Dense Vector Search Engine for ML models active. |
|
REST/HTTP |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Handles metadata for Milvus service active. |
|
REST/HTTP and gRPC |
Deployment |
|
Yes (CPU or custom metric) |
Exposes gRPC endpoints for generating predictions from ML models. |
|
Web |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Serves static Web assets for the Predictive Merchandiser app. |
|
HTTP |
Deployment |
|
Not required. Minimum of 1 but 2 pods are recommended for HA |
Performs authentication, authorization, and traffic routing. |
|
HTTP |
StatefulSet |
|
Atleast 3 nodes in HA, you need to run 3 or 5 to ensure a quorum |
Write Ahead Log (WAL) used for persistent message storage. |
|
HTTP and TCP |
Deployment |
|
Atleast 3 nodes in HA |
Contains REST API for managing administration and dispatcher for handling all message transfers. |
|
REST/HTTP |
Deployment |
|
Yes (CPU or custom metric) |
Processes query requests. |
|
Web |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Serves static Web assets for the Rules UI. |
|
Web |
Deployment |
|
Not required. Minimum of 1 but 2 pods are recommended for HA |
Load balancing and proxy for Seldon Core deployments. |
|
REST/GRPC |
Deployment |
|
Yes (CPU or custom metric) |
Serves models built in any model building framework. |
|
Web |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Maintains Seldon Core deployments for ML model serving active. |
|
HTTP |
StatefulSet |
At least 3 nodes in |
Yes (CPU or custom metric) |
Search engine. |
|
n/a |
single pod per job |
|
1 per job |
Launched by the job-launcher to run a Spark job |
|
n/a |
one or more pods launched by the Spark driver for executing job tasks |
|
depends on job configuration; controlled by the spark.executor.instances setting |
Executes tasks for a Spark job |
|
REST/HTTP and JDBC |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Performs admin tasks for creating and managing SQL catalog assets. Exposes a JDBC endpoint for the SQL service. |
|
Web |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Retrieves and renders Predictive Merchandiser templates. |
|
REST/HTTP |
Deployment |
|
Not required; only 1 pod should be sufficient for most clusters |
Serves App Studio-based Web apps. |
|
TCP |
StatefulSet |
|
No, you need to run 1,3, or 5 Zookeeper pods to ensure a quorum; HPA should not be used for scaling ZK |
Stores centralized configuration and performs distributed coordination tasks. |