Learn about Genesys Engagement Service architecture
For more information about GES in relation to the Voice Microservices, including the Tenant Service, also see the Voice Microservices Private Edition Guide and the Tenant Service Private Edition Guide.
The following diagram shows the Genesys Engagement Service (GES) architecture. There must be at least two GES nodes spread across availability zones, forming a single service for load balancing and high availability.
You can configure Redis as a clustered Redis or as a primary-replica, non-clustered Redis. You enable clustered Redis mode by setting the REDIS_CLUSTER environment variable to true.
For information about the overall architecture of Genesys Multicloud CX private edition, see the high-level Architecture page.
See also High availability and disaster recovery for information about high availability/disaster recovery architecture.
Architecture diagram — Connections
The numbers on the connection lines refer to the connection numbers in the table that follows the diagram. The direction of the arrows indicates where the connection is initiated (the source) and where an initiated connection connects to (the destination), from the point of view of Genesys Engagement Service as a service in the network.
The connection numbers refer to the numbers on the connection lines in the diagram. The Source, Destination, and Connection Classification columns in the table relate to the direction of the arrows in the Connections diagram above: The source is where the connection is initiated, and the destination is where an initiated connection connects to, from the point of view of Genesys Engagement Service as a service in the network. Egress means the Genesys Engagement Service service is the source, and Ingress means the Genesys Engagement Service service is the destination. Intra-cluster means the connection is between services in the cluster.
|Connection||Source||Destination||Protocol||Port||Classification||Data that travels on this connection|
|1||Callback||Internet||HTTPS||443||Ingress||GES serves the files for rendering the UI front end and answers UI-specific API requests, such as gathering data to populate the Callback view, for authenticated users only.|
|2||External REST API||Internet||HTTPS||443||Ingress||The external REST API allows users to:
|3||Genesys Engagement Service||Outbound API requests to third-party services; in this case, Google reCAPTCHA.||HTTPS||443||Egress||reCAPTCHA verifies that the caller of the Callback Create API (on connection #2) is a real person. This is an optional, additional safety feature for fraud prevention.|
|4||Genesys Engagement Service||Outbound API requests to third-party services; in this case, Google Firebase Cloud Messaging (FCM).||HTTPS||443||Egress||FCM sends web or mobile push notifications to customers. GES uses FCM for Click-to-Call-In and callback mobile notifications.|
|5||UI or REST API||Ingress gateway||HTTPS||443||Ingress||Callback management UI and REST API data. Also see connections #1 and #2, above.|
|6||Genesys Engagement Service||Egress gateway||HTTPS||443||Egress||Outgoing Push Notifications and Captcha requests. Also see connections #3 and #4, above.|
|7||Ingress gateway||Genesys Engagement Service||HTTP||3050||Ingress||Incoming data from the UI or REST API.|
|8||Genesys Engagement Service||Genesys Authentication||HTTP||8095||Intra-cluster||GES queries the Genesys Authentication Service to validate a UI user’s identity.|
|9||Genesys Engagement Service||Genesys Authentication||HTTP||8091||Intra-cluster||GES queries the Environment Service to obtain the tenant’s configuration.|
|10||Genesys Engagement Service||Genesys Web Services and Applications||HTTP||8092||Intra-cluster||GES queries the GWS Configuration Service to obtain privileges and permissions for the authenticated user.|
|11||Genesys Engagement Service||Voice Microservices||HTTP||9098||Intra-cluster||GES starts a session in ORS when it is time to put the callback in the queue for an agent. To initiate the ORS session, GES stores an entry in the Voice Microservice's Redis (using port 6379), rather than communicating directly with ORS. Once the ORS session is started, GES regularly queries the ORS session (using port 9098) for diagnostics information about the callback. In addition, GES might send events to control the ORS session; for example, when the callback is cancelled through the API or UI.|
|12||Voice Microservices||Genesys Engagement Service||HTTP||3050||Intra-cluster||The callback ORS session updates the state and storage of the callback record in GES.|
|13||Genesys Engagement Service||Tenant Service||HTTP||5580||Intra-cluster||GES queries URS to obtain the estimated wait time of virtual queues.|
|14||Designer||Genesys Engagement Service||HTTP||3050||Intra-cluster||When the CALLBACK_SETTINGS data table is published in Designer, Designer sends the changed callback service configurations to GES.|
|15||Genesys Engagement Service||Redis||Redis||6379||Egress||GES uses Redis for in-memory data store for quick retrieval.|
|16||Genesys Engagement Service||PostgreSQL||Postgres||5432||Egress||GES uses Postgres as a persistent data store.|
|17||Prometheus||Genesys Engagement Service||HTTP||3050||Ingress||GES provides metrics for monitoring and alerting with Prometheus.|