Skip to content

Architecture

Damian Serwin edited this page May 6, 2021 · 1 revision

Architecture

Following document describes the architecture of Cempaka Cyclone application.

Overall

Cyclone application works in a three-tier architecture. The Cyclone UI component is responsible for the presentation and cluster management. Cyclone daemon component can run on multiple machines and is communicating with the Cyclone UI using REST API. It is responsible for executing and monitoring the tests. Each Cyclone daemon can spawn multiple test workers which are communicating directly to it's master daemon by UDP custom protocol. The data tier is build on top of the PostgreSQL and is used to preserve data and as a communication system between multiple daemons.

Workers

Each test is executed in a separate JVM. This makes it independent of each other and the daemon. Because of that each test have its own lifecycle and can have its own dependencies. The workers are communicating with the entire cluster only through master daemon which started them. The communication is done through local UDP port. All test information's like metrics, logs and execution statistics are sent to the daemon, saved to the database, and they become available through any daemon API.

Database

For small setups single PostgreSQL instance should be completely enough. The latency between daemon and database does not have any effect on the tests which are running inside separate workers.

Clone this wiki locally