Skip to content

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 Box User Interface

The Botium Box 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 Box Server

The Botium Box 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 Box Agent

The Botium Box 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 Box, this additional service connects Botium Box 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 Box 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 Box 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 Box 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 v1 is used as a scalable persistance layer.

RabbitMQ

For a scalable cluster installation, RabbitMQ is requires as communication layer for the Prisma instances.

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 Box components, state-of-the-art Redis v5 or v6 is used.

ZAP (Zed Attack Proxy) (optional)

Botium Box 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 Box integrates well with state-of-the-art products out there.

GraphQL API Client (optional)

Botium Box also has a GraphQL API to support advanced toolchain integration scenarios.

Cloud Services (all optional)

Botium Box 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.