Main components In SweagleThe main components can be split into two categories: Sweagle components and Technology components. Sweagle Components Core The Sweagle core component is the heart of the system and is in charge of the data model and data content handling. From incoming data in "data change sets" to computing the current data model with pending data to creating and storing snapshots for configData sets. UI The Sweagle UI component is the set of static webpages (angular JS) hosted by the webserver. TaskRunner TaskRunner is used to run predefined Sweagle jobs by Tenant on a cron-based schedule. An example is the daily refresh of the list with unique CDI keynames in use across the data model for the tenant. ScriptExecutor ScriptExecutor executes a parser logic (JavaScript or Python) with arguments across the content of a configData set, and returns the calculated result in the requested format (JSON, YAML, ini, ...). The scriptExecutor runs typically parallel to core on the same host. ML The machine learning component wraps a number of machine learning algorithms. The ML component can run on the same server as the core or remote. CLI The command-line interface facilitates the usage of the Sweagle API to upload, validate, and consume the configuration data by providing a command-line based interface. Technology Components Vault The vault component (optional) is used for the encrypting and decrypting of the configData items that are marked as "sensitive". The default installation of Sweagle uses the MySQL database as backend for the vault. There is a specific database for the sensitive config data, separate from the database with the normal config data. ElasticSearch ElasticSearch is used to store the reports and indices. An example of information served from the ElasticSearch backend is the list of suggested CDI key names for auto completion as soon as you start to type the name of a new CDI, and the reports on the dashboard homepage. Mongo MongoDB is mainly used to store and cache the responses of any request to consume a configuration data set. When a particular request arrives for the first time, it is computed and the response is returned to the requester and also stored in MongoDB. When a second time the same request arrives, Sweagle will immediately reply from the cached response. MySQL Sweagle uses by default MySQL as a relational database management system (RDBMS). The RDBMS is the most important data store and customers are recommended to have automated and proper backup and restore mechanisms in place. Nginx Nginx is used for both webserver and load balancing.