Application Monitoring
cover.mesh had an existing application in which insurance data was stored. The goal of the project was the real-time capture of data changes in the new back-office service, including a graphical presentation as time-series analysis in an interactive web dashboard.
- Implementation of event sending within the persistence layer
- Configuration and integration of Azure Event Hub
- Development of a reliable messaging logic (at-least-once delivery)
- Implementation of the time-series calculation
- Building the web portal with Blazor Server Pages
- Development of dynamic bar charts for displaying time-series analyses
- Creating the CI/CD pipeline in Azure DevOps
Re-Submitting Binary Dead Letter Queue Messages for Azure Service Bus
There are two interfaces for the Azure Service Bus. One is a Windows application called ServiceBusExplorer, originally developed for the Windows Service Bus. The other is the Azure ServiceBusExplorer, a web interface in Azure DevOps modelled on the original ServiceBusExplorer. Both interfaces allow individual messages in a dead letter queue to be re-sent. If the message is binary-encoded (e.g. via Protobuf), it is interpreted as text and thus rendered unusable. The task of the project was to extend both interfaces to enable the re-sending of individual messages.
- Reproduction of the problem in a simple example
- Creation of the feature request for the Azure ServiceBusExplorer
- Creating and discussing the issue for ServiceBusExplorer
- Implementing a solution for ServiceBusExplorer
Self-Service Payment Portal
Lowell had already implemented an online payment option via the consumer portal. However, since the registration process for the portal was complex and involved sending a letter, management wanted straightforward solutions for paying claims directly online. Within the project, several options were developed and implemented.
- Designing solutions together with the managing director
- Implementation of three concepts (Self-Service Payment Portal with postal code, payment link sent in the welcome letter, ad-hoc payment link for callers)
- Monitoring of collected payments
- Privacy-compliant design of the Self-Service Payment Portal
cLean – Debt Collection Software
With the cLean project, Lowell pursued the development of a unified debt collection software for all group companies. All claims of the DACH organization were to be processed as automatically as possible in a highly available system. A key focus was determining the possible scalability of the system at certain times when large volumes of claims had to be imported. C# was the primary programming language, but individual services were implemented in Kotlin and Go.
- Architecture of the microservices system
- Defining service boundaries along business domain lines (DDD)
- Partitioning data into aggregates
- Concept and design of a case reference number readable by both humans and machines
- Concept for an immutable accounting system using Event Sourcing
- Concept and implementation of the accounting component in compliance with business rules
- Research into settlement logic in Germany and Austria
- Implementation of business logic
- Realization of search queries across distributed systems (separate service using CQRS)
- Cross-team coaching, training, and support
API-First
Lowell follows an API-First strategy. The goal was to make the API available to external processes as well. To this end, a central API was provided fully automatically and used by all services. The API is subject to strict guidelines regarding design and backwards and/or forwards compatibility depending on the use case.
- Concept and creation of a central API-First repository based on Protobuf
- Automated generation of release and pre-release versions for multiple programming languages to optimize development speed
- Concept for API versioning
- Creating APIs
- Documentation of the API
- Reviewing APIs with a primary focus on clarity, documentation, and breaking changes
Migration of an On-Premise Kubernetes Cluster to Azure Cloud
Initially, services were operated in an on-premise Kubernetes cluster. The goal of the project was to migrate all services to Azure Cloud. Additionally, technologies and cloud services were evaluated, utility classes and templates were created for future development, and a CI/CD pipeline was established.
- Selection of cloud services to be used in coordination with the architect
- Agreements on future autonomy of development teams
- Review of existing code and resulting best practices
- Documentation of the Transaction Outbox Pattern, idempotency, aggregates, and other useful microservice patterns
- Utility classes for sending and receiving Protobuf business events
- Creation of the CI part of the CI/CD pipeline
- Evaluation and implementation of Azure Serverless
- Setting up infrastructure using Infrastructure as Code (IaC)
- Liveness check / readiness check for services in Kubernetes
- Creation of cron jobs in Kubernetes
- Creation of C# templates for building new services
Schleupen.CS 3.0 – Architecture and Framework
The Schleupen.CS software solution is a distributed application with numerous functional and technical components, aimed at providing a standardized and configurable software solution for the energy and water sector across different market roles. The "Architecture and Framework" team works directly with the enterprise architect and handles all cross-cutting concerns of the backend. The team's tasks involve creating cross-team best practices, design patterns, and a framework for over 100 developers, so that the architecture is implemented as consistently as possible across the many different applications.
- Development and consolidation of the application architecture
- Reducing dependencies between teams through better modularization of the framework
- Development of SOAP services for platform components
- Analysis, design, and implementation of a new deployment solution based on Puppet
- Writing and automating CoffeeScript (a JavaScript dialect) unit tests
Legacy Pub-Sub Solution
To comply with legal requirements for smart meters (intelligent electricity meters), it was necessary to establish a communication solution between Schleupen.CS 2.0 and 3.0. This had originally been excluded from the initial architecture but became necessary for business reasons.
- Concept for asynchronous communication between separate systems
- Mapping Pub/Sub queues in a database
- Implementation of generic receiver and sender solutions
Stabilization of Asynchronous Communication – Business Components
When distributed systems communicate asynchronously and messages are lost, it is very difficult to find out where they go missing. Since the previous project had shown that the errors were no longer in the platform components, the team's task was to provide solutions within the framework to support the business developers.
- Concept and implementation of the Transaction Outbox Pattern in the framework
- Documentation of the Transaction Outbox Pattern
- Training sessions on idempotency and the Transaction Outbox Pattern
Stabilization of Asynchronous Communication – Platform
When distributed systems communicate asynchronously and messages are lost, it is very difficult to find out where they go missing. The task of the project was to analyze the existing code and identify and fix weaknesses in the platform components. Solutions were also developed to increase the confidence of testers and developers in the platform components.
- Concept and implementation of the Test Message Pattern