Server requirements - kwantu/platformconfiguration GitHub Wiki

back to main

This article discusses the server requirements for hosting the Kwantu platform. The platform is split into an application server and one or more database servers.

Application server

The application server manages the the application the transaction management. It accesses the data capture servers as required. We recommend Linux 24GB, 8 cores (Note that the ram levels are related to caching of content, and is a factor of performance requirements.

Software Notes
Redis-stack server for the transaction manager and the processing queue This is a critical performance tool.
Apache Artemis Message queue for secure communications with clients and components
Node.js v18.20.4 To run the application
Nginx Reverse proxy server
HaProxy Load balancer

Database server (s)

The database servers holds a database per community. This means that we can easily separate different communities onto different servers, or we can cluster the servers and add a load-balancer in front. The optimal scenario will depend on your context. We recommend three servers running in a cluster with Linux 24GB, 8 cores depending on the loads. This may be extended into multiple clusters, one for main databases and search indexes on SSD drives, one cluster for document management, and multiple clusters for user account buckets (Note that the ram levels are related to caching of content, and is a factor of performance requirements.

Software Notes
CouchDB server version 3.5.2 Clustered into at least 3 servers, with multiple clusters for higher load requirements.
Java For use by the Lucene indexer
Clouseau indexer
Mariadb 10.6 For storing key state data and reporting database for simplified reporting

Reports server (s)

The report servers holds an elasticsearch database for fast search and dashboards. And an exist-db instance, with a linked in jasperReports engine to perform etl and report generation. (Note that the ram levels are related to caching of content, and is a factor of performance requirements.

Software Notes
Exist-db 6.2 Report server and etl processors
ElasticSearch / Opensearch Drives the dashbaords
Java For use by the etl and reporting engines

Minimum requirements

The minimum recommended requirements are:

CPU - 3.2GHz Quad-Core Xeon RAM - 24 GB DDR3 1333MHz Hard Drives - 2x 1 TB Enterprise RAID Level - RAID 1 Linux Almalinux 8 or higher

Example specifications

Incorporate use case config examples as per https://confluence.atlassian.com/doc/server-hardware-requirements-guide-30736403.html

Software stack

The Kwantu platform is based on the following stack.

Product type Product Version License
Web server nginx 1.10.2 2-clause BSD
Database Couch DB 2.3.0 Apache License 2.0
Database Mariadb Community Edition 10.6.0 [GPL License]
JavaScript Node.js 9.4.0 MIT license
Jasper reports Ireport 6.3.0 GPLv3
Low latency storage engine Redis-stack 3.2.12 Three clause BSD license
Message queue Apache Artemis Latest Apache License 2.0
Java Oracle Java OpenJDK 1.8.0_181-b13 GPLv2
Search engine Elasticsearh / Opensearch 7.6.0 Apache License 2.0
Git 1.7.1

Notes