Architecture

Overview

The Phaedra II platform is based on a microservices architecture pattern.

The following list of services are currently implemented in Phaedra II:

These services communicate with each other using an event-based mechanism, Apache Kafka, to perform various tasks:

In addition, each service exposes a public API that is accessible by way of an API Gateway.

Plate Service

Plate service is responsible for managing projects, experiments and plates created in Phaedra II. It is implemented with Spring Boot framework.

Protocol Service

Protocol service is responsible for managing protocols, features and calculations formulas. It is implemented with Spring Boot framework.

Data Capture Service

Data capture service is responsible for importing data measurements and managing/executing capture jobs. It it implemented with JavaScript that runs on a Node.js runtime environment.

Measurement Service

Measurement service is responsible for managing the imported data measurements. It is implemented with Spring Boot framework.

Calculation Service

Calculation service is responsible for executing formula calculations created and defined with Protocol service. It consists of 1 or more calculation engines (this can be scaled) that can execute R code. It is implemented with Spring Boot framework.

Resultdata Service

Resultdata service is responsible for managing the calculated result data coming from the Calculation service. It is implemented with Spring Boot framework.

Metadata Service

Metadata service is responsible for managing metadata like tags and properties for different Phaedra II entity objects like projects, experiments, plates, protocols, plate templates and wells. It is implemented with Spring Boot framework.

Charting Service

Charting service is responsible for building different types of charts for specific input data. The charting service collects the data from other Phaedra II services and combines the collected data in charts that can be displayed. The chart types that are available at the moment of the writing are Scatter, Box-plot and Bar charts for selected plate. It is implemented with Spring Boot framework.

Pipeline Service

Phaedra UI

Phaedra UI is an implementation of the Phaedra Web client application. It is implemented with Vue.js web framework. Phaedra UI relies on the REST and GraphQL apis of the Phaedra II back-end services to visualise and update the data.