Short description:

The aim of the project is the migration of a (near) real-time streaming application. The application is used to process and visualize event data in near real time. The challenge lies in the customer's desire to change the technology stack as well as the cloud provider. Among other things, a technology change should ensure that the system complexity is reduced and interfaces that are no longer required are removed. This also makes it easier to operate the application, as the application is now aligned with the customer's technological expertise. PTA designs the software architecture based on the customer's preferred technology stack and implements the software components.


The application to be migrated is a SPRING Boot web application written in Java, which is deployed as a web server behind a reverse proxy on a virtual machine and processes event data from a Kafka Cluster provided especially for this application purpose. The event data is transferred directly from the Oracle database of the source system to the Kafka Cluster of the Confluent Platform using the change data capture (CDC) tool HVR and consumed by the SPRING Boot backend. As part of the migration to the Google Cloud Platform (GCP), the technology stack of the existing backend based on Java (Spring Boot, Kafka, Redis, WebSocket) is switched to Python (Flask, Kafka, DiskCache, SocketIO, Docker). The Python-based Flask web application is now accessed via service configuration and ingress controller via an internal load balancer.

Technical description:

The application is regarded as a prototype for system architectures to test real-time data processing and visualization in the context of business intelligence (BI) applications. The dashboard with real-time visualization runs on a screen in the reception hall as well as on selected screens in the customer's head office and gives the term Data Driven Company the desired meaning. The migration of the application to the customer's preferred technology stack now enables the responsible team to operate the application independently.