Containerized architecture
Architecture Summary
The following diagram depicts the high-level architecture of our cloud-native containerized software. It shows how the client can integrate with LumenVox speech products through APIs.
In the following sections we discuss the different components of this diagram in more detail:
- APIs
- Required external software (including Persistent Storage)
- Other recommended external components (monitoring, logging, and access control)
- Licensing Service
- LumenVox Containerized Microservices
[The LumenVox admin portal and the communication protocols have been covered in previous sections].
APIs
These public APIs are exposed by the LumenVox containers to enable applications to utilize the software services we provide.
- LumenVox API – the LumenVox API is used for functionality working with LumenVox speech products. This collection of APIs can be used to consume the speech products: ASR, Transcription ASR, TTS, CPA, and the NLU gateway.
- Biometrics API – this collection is used for LumenVox Voice Biometrics products. It is used to perform active voice biometrics enrollment and verification transactions.
- Management API – REST API that provides external access to the Deployment, Configuration and Engine Resource Services. Used to manage configuration and deployment parameters, which can also be managed via the Admin Portal and the Deployment Portal.
- Reporting API – this collection of APIs is used to extract session and transactional data from the platform. There is currently a Reporting API for LumenVox Speech, and a Reporting Bio API for LumenVox voice biometrics. The Reporting API for Speech is a REST API that connects via gRPC to the Reporting service and databases.
For more information on the APIs, and how client applications can interact with them, visit our API documentation at https://developer.lumenvox.com/, select the relevant version.
External Service Prerequisites
The following external software components are required. The first four components have been selected by LumenVox as prerequisite solutions supporting complete functionality, scalability, and resiliency in the containerized architecture. They are available as open-source, or as cloud-managed by major public cloud providers. Each of these are optimal and best-in-class. Partners or clients are required to implement these as a pre-requisite.
In a production environment we recommend a distributed cluster for each, as opposed to a singular instance, to ensure high availability, scalability, and disaster recovery.
RabbitMQ – Message Queuing
This message queuing component, to be implemented independently by the client/partner, is used by LumenVox software for all internal messaging between the microservices, which means the queuing of all transaction, audit, and management information. Once a service processes the data requests, the messages are removed from the queue. These messages are proprietary to LumenVox services and should not be used by clients.
Redis – In-Memory Cache
This in-memory data structure store acts as a database cache. It holds the session, audio, Interaction, and other proprietary metadata used when processing interactions. It is used for caching of session & transaction information throughout the architecture for the duration of its processing by the various internal services. This metadata is proprietary to LumenVox and should not be used by clients.
MongoDB – Database
A Key-Value based database is used as a repository for session binary data. This document-oriented database is used by LumenVox software to store the audio, grammars and SSML files in a binary, encrypted format. It is important to store this information for audit/troubleshooting purposes. It is used to determine and refine the performance of the product, using the Analysis tool described earlier. The storing of audio files is configurable. The data stored on this external service is proprietary to LumenVox and should not be accessed by clients.
PostgreSQL – Database
A repository for persistent metadata, licensing, and reporting data. This SQL compliant relational database is used by LumenVox software to store all the transactional data. The data stored on this service is proprietary to LumenVox and should not be accessed by clients.
Persistent Storage
In addition to the required pre-requisite components specified above, customers should also provide persistent storage (1TB recommended), from a provider of their choosing. This is required for storing ASR & TTS models as well as grammar files. As noted, data stored on this external service is proprietary to LumenVox and should not be accessed by clients.
Other Recommended External Components
Monitoring Tool – such as Prometheus
Prometheus is a time-series database that's used throughout containerized and cloud environments and is the de-facto standard for metrics tracking. It can be visualized using graphical interface tools like Grafana (and others). Prometheus is commonly used by cloud providers for monitoring overall system performance (e.g., CPU status). You can set up alerts to send messages or emails and access its dashboard at a pre-configured URL.
Prometheus has the advantage that there are managed versions of the Prometheus service available from most of the main cloud hosting providers, such as Amazon, Google, and IBM.
LumenVox has out-of-the-box support for Prometheus. A list of metrics can be obtained from LumenVox.
Logging Tool
Customers are required to supply their own logging tool, to be able to retrieve and analyze container logs. All containers log information in a standard format that can be consumed by your logging tool of choice.
Access and User Management
Customers must provide their own access management Interface. LumenVox does not provide any user identification (authentication) or permission checking (authorization) for access to the LumenVox APIs used to access the containerized products, this is managed by security systems the client will have in place.
Licensing Service
To consume LumenVox products, the containers are required to communicate with LumenVox’ cloud licensing service to submit information on product utilization. This outbound connection is made using secure HTTPS, typically once per day, and contains no user identifiable information (only license usage metrics).
Customers need to ensure that external firewall requirements are modified to allow the external connection.
LumenVox Containerized Microservices
At the heart of the LumenVox modern, cloud-native offering are the microservices in a containerized architecture. For more information about the LumenVox microservices refer to https://developer.lumenvox.com/