In the prototype, use cases from the field of energy trading are implemented in a microservices architecture using technologies such as event streaming via Kafka, messaging via RabbitMQ and websockets. Market data, which is consumed and processed via stream, serves as the basis for pricing. The application manages orders with load profiles. An asynchronous, scalable pricing architecture is implemented for pricing. Notifications and results are processed and displayed directly in the Angular frontend via websockets and STOMP. Load profile data is visualized. Automated integration tests are implemented alongside unit tests for quality assurance.
Supplement
The prototype uses current technologies against the background of realistic requirements from the field of energy trading and order management. The backend is based on Spring Boot and is divided into several microservices. Angular is used as the UI framework in the front end. The infrastructure of the development environment and the test system are based on Docker and Docker-Compose. Communication between the microservices is asynchronous via RabbitMQ with request-response and messaging. The backend provides web services for the frontend. Data is also sent from the backend to the frontend via Websocket / STOMP protocol to enable near-real-time updates. Angular signals are used in the frontend to hold the state in the services. To test the application, integration tests are implemented in addition to the regular unit tests to ensure the correct functioning of the application in interaction with the database, RabbitMQ and Kafka.
Subject description
The application manages orders for various commodities with individual load profiles. These are visualized via base-peak decomposition. Market prices for futures contracts are created via a market price simulator, provided in an event stream and processed for the pricing of orders.