. Docs  . Admin Guide  . Architecture

Architecture

This document gives an overview of the Kora platform. The detailed architecture will be shared by the Kora team with you during the installation process.

Architecture Diagram

(TBD – architecture diagram)

Platform Components

Kora as a platform includes the following components:

  • Bots Application Server – Exposes REST API endpoints for:
    • storing retrieving bot/task definitions,
    • get/store/update context information,
    • encryption service,
    • endpoints for webhook, web and mobile channels. Required for enabling corresponding channels Twilio, Alexa, Workplace for Facebook and HTTP listener that handles requests for IVR.
  • Kora Application Server – Exposes REST API endpoints to Kora clients for
    • storing retrieving Kora business objects – Knowledge, Announcements, Tasks, Notes,
    • get/store/update users information,
    • endpoints for webhook, web and mobile channels.
  • Bot Message Router – Process’ the bot messages for
    • identifying the skill transfer trigger to route users to skill endpoints,
    • intercepting dialog events to apply business rules.
  • IDProxy Server – Provides SSO and OAuth integration. Exposes an endpoint idp.<domain>.<tld> for configuring as a callback URL for OAuth endpoints that are being integrated for bot authentication.
  • RabbitMQ Server – AMQP Message broker. Internal subsystems of the Kore cluster uses AMQP messages as a way of communicating across services.
  • Bot Service Runtime – Provides Adaptor for Bot channels which process incoming messages and send the outgoing messages for web or mobile channel. Standalone timer service which handles scheduled tasks including user-configured alerts
  • ChatScript – Natural language processing engine to process the incoming messages and identify the desired intent.
  • BotsServiceAdmin – Standalone service that pulls the enterprise user profiles from LDAP or Active Directory and updates them in Kore platform. Executes the backend web services and the API requests for backend web services. Optionally these can be configured to use the forward proxy (ex. squid)
  • Sandbox – Provides JavaScript execution environment to execute developer provided script while processing message templates and script nodes.
  • Key Server  – API server to manage key encryption/decryption. This is also the server that interacts with HSM.
  • Redis Cache – Provides a caching layer.
  • MongoDB Farm – This is the database layer.
  • GraphDB Farm – The database layer using Cassandra as a DB store.
  • ElasticSearch – cluster responsible for indexing the knowledge articles.
  • Presto – cluster responsible for fetching the analytics data (dashboard and analyze screens in the UI), and audit logs.
  • Machine Learning – a micro service that is responsible for training the bot model and also the intent prediction based on the trained model.
  • FAQ Engine – a micro service that is responsible for predicting the answers for knowledge collections.