Please read the monitoring section if you are looking for information regarding the criticality of each component.

SentiOne Automate


Application name (pod)Description (purpose)Main Tech-Stack
adminWeb interface offering bot administration utilities. It's being used to manage phrases, dialogue flow, integrations, NLU & Training set management. API interface for knowledge base.React, Play, Scala, sbt, JVM
gatewayExposes REST API used to communicate with bot services.React, Play, Scala, sbt, JVM
ssoApplication offering Single Sign-on integration. It makes a use of cookies injected by Windows OS & Browser. Based on that cookie it's able to authenticate user within Active Directory (Kerberos protocol, negotiation mechanism called SPNEGO). After successful authentication it integrates with new-web and admin applications using OAuth2 protocol. Roles & Permissions mechanism can be managed with use of new-web and admin applications.React, Play, Scala, sbt, JVM
analyticsIt exposes analytical services to admin application.React, Play, Scala, sbt, JVM
dialogsProcesses flow of Dialogue and stores conversation sessions (It deals with parsing dialogue blocks and connections between them)React, Play, Scala, sbt, JVM
web-chatReference webpage for demonstrating web-chat implementation. It can serve webchat window that can be embedded as an iframe on customer's webpage.React, Play, Scala, sbt, JVM
cron-orchestratorIt coordinates execution of so-called 'Cron Jobs'. Responsible for collecting job execution history as well.Play, Scala, sbt, JVM
twitter-botApplication responsible for integrating with Twitter and redirecting Twitter messages to appropriate Bot.Play, Scala, sbt, JVM
ms-teams-botApplication responsible for integrating with Microsoft Teams and redirecting MS Teams messages to appropriate Bot.Play, Scala, sbt, JVM
channels-connectorBridge between different channels (e.g. Facebook or WhatsApp) and SentiOne Automate.Play, Scala, sbt, JVM
thread-coordinatorManager of bot conversation threads owners.Play, Scala, sbt, JVM


Application name (pod)Description (purpose)Main Tech-Stack
name-serviceSurname declension service (used for generating surnames of the authors)Python, PIP
ducklingSystem entities service (recognising dates, common names, phone numbers)Clojure, JVM
senti-duckWrapper for duckling service which also adds some additional postprocessing.Python, PIP
inferrerNLU Hypothesis gathering servicePython, PIP
keywordsKeyword entities management servicePython, PIP
nlu-facadeFacade for NLU ServicesReact, Play, Scala, sbt, JVM
nlu-pipelineServices connector in form of sequential processing (pipeline)React, Play, Scala, sbt, JVM
intentizer-multiIntent detection serviceTensorFlow, Python, PIP
ner-plNamed Entity detectionTensorFlow, Python, PIP
tagger-plIdentyfing part of speech within text.Python, PIP
pcreRegular expressions servicePython, PIP
patternPattern detection service, empowering our own technology for pattern-detection.Python, PIP

SentiOne Listen & React

Application name (pod)PurposeMain Tech-Stack
new-webWeb interface used for bot administration. It can be used to browse conversation transcriptions with the ability to play back the original audio conversation. It also allows Human take over of the conversation initially conducted by Bot (if it was in the scope of the project)React, Play, Scala, sbt, JVM
analyserBackend service for new-web. It's responsible for data-analysis, aggregation and dashboards.Scala, sbt, JVM
redisKey-Value database kept in memory used for monitoring API usage by new-web / analyser. It's also used for event-passing for monitored threads (communication between new-web and slim-uploader), distributed operation synchronisation, websocket synchronisation between new-web instancesANSI C, Linux executable
slim-uploaderMoves conversation history (transcription) from RabbitMQ to ElasticSearch cluster.Akka, Scala, sbt, JVM
refineryEnriches conversation with semantic analysis (sentiment).Akka, Scala, sbt, JVM
bot-integrationAllows integrating transcriptions from another systems into SentiOne React. Main purpose is to save transcriptions from SentiOne Automate.Play, Scala, sbt, JVM


NamePurposeMain Tech-Stack
ElasticSearch clusterDatabase used for storing transcriptionsLucene, Java, JVM
RabbitMQ clusterMessage-passing system used for asynchronous communication.
PostgreSQL databaseGeneral-purpose database, configured and provided by customer.