1. Home
  2. Docs
  3. User Manual
  4. Introduction
  5. Architecture

Architecture

InProd comprises of 4 installable components:

inprod-aft

Aft is a RESTful JSON web service that acts as the interface between InProd and the Genesys configuration server. This is a small Java application and uses the Genesys Platform SDK Version 8.5. As Aft can only connect to one Genesys environment at a time, a separate instance is required for each configured environment within InProd.

inprod-bow

Bow is the backend server component of InProd that handles the majority of the application logic. There is traditionally one instance of per installation. Bow connects to a Postgresql database where all configuration data and change auditing is stored. This is another RESTful JSON web service that serves API end points to the front end. Some static HTML web pages are also served to create the API documentation.

As of version 1.4 Bow deploys and manages a Redis in-memory data structure store and Celery asynchronous task queue.

inprod-ember

InProd uses a HTML5 User Interface built on a JavaScript framework called Ember.js. This package installs the associated web documents to run on a Nginx web server. This web application connects to Bow via Nginx utilising the RESTful JSON API, which is fully documented.

inprod-ssc

inprod-ssc is an optional component that monitors agents events and periodically posts this data to inprod-bow. To report on concurrent license types within the InProd license reporting feature a Stat Server connection is required, inprod-ssc provides this function.

High Availability

Aft

The Aft component connects to the Genesys Config Server and Message Server via the standard High Availability model described by Genesys. On its own, Aft operates in an active – standby High Availability model like many Genesys components and can be monitored with Genesys Management Layer.

In the event that Aft loses connection to Bow, auditing data is written to a local SQLite database within the Aft installation directory. Once the connection to Bow is restored, the data contained within this database is automatically transferred.

Bow

Due to the buffering features of Aft, any outages in Bow will not result in a loss of data. Therefore, HA deployments for Bow is uncommon. Bow is a traditional REST web server and can have multiple deployments fronted by a HTTP load balancer such as Nginx or F5. To support this, a clustered Postgresql infrastructure is required.

Multisite Genesys Environments

InProd supports a number of complex deployment architectures. Generally there is only one installation of inprod-bow and inprod-ember. While inprod-aft and inprod-ssc require at least one instance per environment.

Multi site deployments require at least one instances of inprod-ssc per site. Multiple instances of inprod-aft is only required if the Genesys configuration server primary and backup run on different sites.

How can we help?