User: Jdruker/GIMPEGuide Architecture2
Architecture[ | edit source]
[Proposed extension of the GIM PE Guide Architecture page.]
Introduction[ | edit source]
Genesys Info Mart is the historical reporting back-end service that performs extract, transform, and load (ETL) processing of data generated by contact center activity. Genesys Info Mart comprises the following services:
- GIM Config Adapter (GCA) — Reads configuration data from the contact center Configuration Database and stores the data into Kafka topics for consumption during transformation processing. There is a separate GCA service for each tenant.
- GIM Stream Processor (GSP) — Processes GCA-sourced configuration data and raw event data streamed to Kafka from upstream services handling interaction and agent activity on Voice and Digital channels. GSP transforms the data into data structures suitable for a data mart for contact center historical reporting.
- GIM — Pulls the transformed data from Kafka and loads the transformed data into the Info Mart database. The GIM service also performs other database-related tasks, such as a regular maintenance job and an export job to export Info Mart data. There is a separate GIM service and Info Mart database for each tenant.
All the Genesys Info Mart services are stateful. This has implications for high availability (HA) and disaster recovery (DR) (see High availability and disaster recovery) as well as for upgrade methods, because you cannot deploy mirrored services in parallel.
For information about the overall architecture of Genesys Multicloud CX private edition, see the high-level Architecture page.
The following diagrams show the Genesys Info Mart architecture.
- Architecture diagram — Data flows is from the point of view of data.
- Architecture diagram — Connections is from the point of view of network connections.
See also High availability and disaster recovery for information about high availability/disaster recovery architecture.
Architecture diagram — Data flows[ | edit source]
The numbers on the connection lines refer to the connection numbers in the Connections table that follows the diagrams. The direction of the arrows indicates the direction of data flows.
Writer's note: Diagram will be the same as the Connections one except for the arrows. The current Connections diagram is used here as a placeholder.
Architecture diagram — Connections[ | edit source]
The numbers on the connection lines refer to the connection numbers in the Connections table that follows the diagrams. The direction of the arrows indicates where the connection is initiated (the source) and where it connects to (the destination), from the point of view of Genesys Info Mart as a service in the network. In the Connections table, Egress means the Genesys Info Mart service is the source, and Ingress means the Genesys Info Mart service is the destination.
Connections table
| Connection | Source | Destination | Protocol | Port | Connection Classification | Data that travels on this connection |
|---|---|---|---|---|---|---|
| 1 | GIM Stream Processor | Object storage | HTTPS | 443 | Egress | GSP state information, checkpoints, and other data used during processing |
| 2 | GIM Config Adapter | Object storage | HTTPS | 443 | Egress | Configuration data stored as a GCA snapshot used during processing |
| 3 | GIM Config Adapter | Configuration Database | TCP | 5432 | Egress | Contact center configuration data, which GCA uses to construct the GCA snapshot used during processing |
| 4 | GIM Config Adapter | Info Mart database | TCP | 5432 | Egress | Configuration data to synchronize the GCA snapshot with configuration data stored in the Info Mart database |
| 5 | GIM | Info Mart database | SSL | 5432 | Egress | Transformed reporting data to be stored in the Info Mart database. GIM also uses this connection to perform database maintenance. |
| 6 | GIM | Object storage | HTTP | 443 | Egress | Reporting data exported from the Info Mart database |
| 7 | Prometheus | GIM Stream Processor | HTTP | 9249 | Ingress | Metrics for monitoring and alerting |
| 8 | Prometheus | GIM | HTTP | 8249 | Ingress | Metrics for monitoring and alerting |
| 9 | GIM Stream Processor | Kafka | Kafka | 9092 | Egress | Message bus for receiving and sending reporting data |
| 10 | GIM Config Adapter | Kafka | Kafka | 9092 | Egress | Message bus for sending configuration data |
| 11 | GIM | Kafka | Kafka | 9092 | Egress | Message bus for receiving transformed reporting data |
Ports used for internal purposes[ | edit source]
Writer's note: The original requirement was to document all ports used across the PE deployment, so customers would be able to pre-empt conflicts if they change port allocations. However, both the diagram and the table seem to have been taken over by the focus on network connections, and I don't know if this means it's crowded out info about internal ports that customers might still want to know. Should we include information like the following table, which I populated from ports specified in the values.yaml?
GSP uses the following ports for internal connections with Flink.
| Port | Protocol |
|---|---|
| Task manager | |
| 6122 | RPC |
| Job manager | |
| 6123 | RPC |
| 6124 | Blob |
| 8081 | REST |