Haufe

Scope

As an offshore technology partner Coforge started the engagement with Haufe Umantis group in year 2017 and initially was involved to perform a technology upgrade of a mission critical module of the application and eliminate technical debt by refactoring/replacing a part of the application. After successful completion of the same Coforge was offered various project where Coforge is working on various missions to achieve a common goal

Based on a thorough assessment, Coforge

proposed migrating from Perl implementation to Java Microservices architecture, while maintain the functional specs of the existing application executed a PoC to establish solution validity performed a detailed impact analysis of the change to the application ecosystem and shared results on Confluence created a roadmap, based on the impact assessment, to migrate dependent modules to the new Java microservices architecture executed the entire migration using “Global Agile” methodology sliced entire set of applications to be migrated into incremental, fully functional and backward compatible builds setup test automation to reduce overall development cycle time setup various build and deployment environments in AWS cloud

From a front-end perspective, Our goal was to use a technology stack that we find easy to work with and is something common in the marketplace:

React JS - Front end framework ES6 - JavaScript environment Less - CSS pre-processing Yarn - Build management NPM - Front end package manager Webpack - Bundler for modules and dependencies Karma - Test runner for JavaScript ESlint - Style guide linter tool

The back-end technology was architected with the same simplicity in mind. Given the robustness of the Kubernetes. We choose to use Kong API and Kubernetes stack for discovery and gateway, we decided to stick with Java and gain the benefits of microservices architecture:

Java 8 - Server side language Spring Boot - Web service layer JUnit - Server side unit testing Postgres – Database Kubernetes – container management and Service discovery Kong - Routes API calls into the environment (proxy server) Nginx - Load balancing AWS EKS cluster - Clustering Apache Kafka - Messaging One Signal - Push Notification AWS SES - Email

At Coforge, we believe that documentation is as important as the code we write. For that reason, project uses some critical tools to facilitate documentation

Swagger - Framework for generating API documentation alongside code Confluence - Collaboration tool APIRey - API documentation

Currently, you can deploy in several ways, with additional methods on the horizon:

Maven - Local builds Docker - Containerized deployments RPM - Manual deployments into AWS Jenkins - Pipelines for continuous integration (CI) and continuous delivery (CD) Kubernates - Created multiple clustred environment with all microservices

E2E automation using selenium where TestNG and Kafka consumer were also used along side to test events and APIs.

Benefits

Enabled scalable and optimally performing Java Microservices for the processing of asynchronous jobs of various modules of HRM application. Enabled functional decoupling of various modules of the application Improved test automation of the application Enabled application build environments in AWS platform Enriched documentation of application High and consistent quality