System Architecture and Tech Stack
This document describes the involved components - proprietary ones, 3rd-Party and cloud services. Some of them are mandatory, some are optional. For the proprietary components, the technology stack is described as well.
Architecture Overview

Proprietary Components
Proprietary components have been developed by Botium itself.
Botium User Interface
The Botium User Interface is a browser-based application. It works on all state-of-the-art browsers, including Chrome, Safari, Edge and Firefox.
Tech Stack
-
Javascript (of course)
-
React 16 / Redux
-
Google Material-UI 3
-
GraphQL Client with Apollo GraphQL Client 2
Botium Server
The Botium Server is the central instance connecting the Agents and the User Interface. It is a server-side application and supports load-balancing over multiple instances as well as multi-tenancy.
Tech Stack
-
Node.js v14 - perfect choice for micro-service development
-
GraphQL API with Apollo GraphQL Server 2
-
Redis Message Queue and Job Scheduling
Botium Agent
The Botium Agent(s) are the work-horses, which actually run the test cases. Usually, there are several Botium Agents active for parallel execution of test cases.
Tech Stack
-
Node.js v14 - perfect choice for micro-service development
-
Botium Core for Test Case Execution
-
Redis Message Queue and Job Scheduling
Botium Speech Processing (optional)
For doing advanced voice testing with Botium, this additional service connects Botium to state-of-the-art voice technology:
-
Speech-To-Text with Open Source products like Kaldi, or connected to Google or Amazon clouds
-
Text-To-Speech with Open Source products like MartyTTs, picotts, or connected to Google or Amazon clouds
-
Adding voice effects and layers to your audio recordings
Tech Stack
-
Node.js v14
-
OpenAPI (HTTP/JSON)
-
Kaldi, MaryTTS, PicoTTS
-
SoX (for audio effects)
Botium Coach Worker (optional)
NLP analytics can best be done with state-of-the-art machine learning libraries available for Python.
-
Utterance similarity
-
Keyword analytics
-
Sentence embeddings
-
... and more ...
Tech Stack
-
Python 3
-
OpenAPI (HTTP/JSON)
-
Tensorflow 2.2
-
Huggingface
-
Other ML-related libraries as SciPy, Pandas, NLTK, NumPy, Keras, ...
3rd-Party Components
In the Botium architecture, there are some state-of-the-art components involved provided by 3rd-parties, typically available as Open Source.
Load Balancer
Between the client browser and the Botium services there is a load balancer required that routes the client requests to the available backend services, detects and reacts to unavailable instances etc.
-
In an On-Premise environment, typically NGinx is used (part of the Botium distribution files)
-
In a cloud environment, there is typically a vendor-specific technology available, such as Elastic Load Balancer in the AWS cloud
Prisma
Prisma v2 is used as a scalable persistance layer.
MySQL
MySQL >= 5.7 (or a compatible database like MariaDb) is required as a storage engine. In a cloud environment, there is typically a vendor-specific way of accessing a managed MySQL instance, such as Relational Database Service in the AWS cloud.
Redis
As a reliable communication and job processing queue between the Botium components, state-of-the-art Redis v5 or v6 is used.
ZAP (Zed Attack Proxy) (optional)
Botium uses the Zed Attack Proxy for checking Chatbot APIs for the OWASP Top 10 security threats..
CI/CD Pipeline (optional)
Having a CI/CD Pipeline is a must nowadays. Botium integrates well with state-of-the-art products out there.
GraphQL API Client (optional)
Botium also has a GraphQL API to support advanced toolchain integration scenarios
Cloud Services (all optional)
Botium occasionally makes use of some cloud services.
Google Translate
For translating test sets into other languages.
Quillbot Paraphrasing
Paraphrasing test sets.
OpenAI
Paraphrasing and more to come.
Browser/Device Cloud Providers
Required for End-2-End-Testing.
Google Speech and Amazon Polly / Transcribe
Text-to-Speech and Speech-To-Text for voice testing.
Twilio
For IVR Testing a Twilio subscription is required.
Comments
0 comments
Please sign in to leave a comment.