Inquiry icon START A CONVERSATION

Share your requirements and we'll get back to you with how we can help.

Please accept the terms to proceed.

Thank you for submitting your request.
We will get back to you shortly.

Payroll Processing on Microservices

Client

Based in the U.S., our client is a global professional services company offering domain expertise in technologies that promote customer engagement. With over 65,000 employees and a presence in 25 countries, the client offers expertise in industries such as financial services, healthcare, pharmaceutical, technology, consumer electronics, retail, automotive, and tourism.

Industry

Professional Services

Overview

The highly configurable payroll processing system developed with microservices CQRS-ES architecture, provides built-in audit trail, security, logging, scalability, reliability, high availability, and upgradability at component level. The services were Dockerized for easy and hassle-free deployment. The platform significantly reduced time taken for computing and report generation.

Show More Show Less

Business Challenges

The client’s legacy system used outdated frameworks, exposing major security vulnerabilities due to framework compatibility issues.

  • Performance and scalability concerns due to heavy UI framework
  • Inability to upgrade operating system and apply patches
  • Legacy system is required to be on maintenance mode for every payslip posting to prevent disruptions
  • Limited payroll processing with no provision for ad hoc reporting
  • Total processing is very slow – 17 hours 40 minutes per pay schedule/34.8 hours per month/417.6 hours per year

QBurst Solution

The Payroll Processing application works on files that flow into the shared FTP from external systems. The files include employee and daily time entry details. The scheduler service for monitoring, routinely checks the FTP location for the latest files to be integrated. It is also responsible for triggering the payroll computation bi-weekly.

The user interface accesses the backend microservices via an API gateway. The API Gateway (Ocelot) takes care of routing requests from the frontend application to the respective backend service. It also performs rate limiting and quality of service functions. The identity service authenticates users against the active directory and fetches user details from the Employee Information Service to assist authorization. Notification service is used for sending mails and enabling real time communication with the UI using SignalR.

Individual microservices communicate changes in data on the respective domains to other interested microservices by using a message queueing system (RabbitMQ). APIs retrieve information from other APIs via HTTP calls. The solution is platform agnostic and can be deployed on-premises or using any cloud provider.

Business Benefits

  • 35% reduction in annual expenditure as a result of end-to-end support
  • 70% reduction in payroll process computation time
  • Better modularity and maintainability
  • Mitigated errors and improved statutory compliance
  • Operational ease in day-to-day HR operation
  • Real-time data synchronization and monitoring
  • Enhanced business intelligence with error-free documents and reports

Key Features

  • Input and approval flow of earnings, deductions, and recurring deductions
  • Workday and DTR file processing to capture employee’s Daily Time Records and time-offs
  • Employee Information Service for managing employee details and previous employer details
  • Identity Service for authorization and token management

Highlights

  • Microservices follow the CQRS-ES pattern to provide built-in audit trails
  • SignalR is used for real-time notifications and progress bars
  • Authorization Code + PKCE flow is used to implement security between the end user and APIs
  • Microservices are dockerized to aid development, scalability, and hassle-free deployment
  • Deployment in various environments (QA, UAT, pre-production, production) are done in Kubernetes clusters
  • Security Token Service (STS) is implemented using IdentityServer4

Technologies

  • ASP.Net Core 2.2 Web API
  • Angular 8
  • MySQL using JSON columns
  • MongoDB (EventStore)
  • Elasticsearch
  • RabbitMQ
  • Docker
  • Kubernetes
  • Ocelot API Gateway
  • WeaveScope
  • New Relic (APM)

Business Challenges

The client’s legacy system used outdated frameworks, exposing major security vulnerabilities due to framework compatibility issues.

  • Performance and scalability concerns due to heavy UI framework
  • Inability to upgrade operating system and apply patches
  • Legacy system is required to be on maintenance mode for every payslip posting to prevent disruptions
  • Limited payroll processing with no provision for ad hoc reporting
  • Total processing is very slow – 17 hours 40 minutes per pay schedule/34.8 hours per month/417.6 hours per year

QBurst Solution

The Payroll Processing application works on files that flow into the shared FTP from external systems. The files include employee and daily time entry details. The scheduler service for monitoring, routinely checks the FTP location for the latest files to be integrated. It is also responsible for triggering the payroll computation bi-weekly.

The user interface accesses the backend microservices via an API gateway. The API Gateway (Ocelot) takes care of routing requests from the frontend application to the respective backend service. It also performs rate limiting and quality of service functions. The identity service authenticates users against the active directory and fetches user details from the Employee Information Service to assist authorization. Notification service is used for sending mails and enabling real time communication with the UI using SignalR.

Individual microservices communicate changes in data on the respective domains to other interested microservices by using a message queueing system (RabbitMQ). APIs retrieve information from other APIs via HTTP calls. The solution is platform agnostic and can be deployed on-premises or using any cloud provider.

Business Benefits

  • 35% reduction in annual expenditure as a result of end-to-end support
  • 70% reduction in payroll process computation time
  • Better modularity and maintainability
  • Mitigated errors and improved statutory compliance
  • Operational ease in day-to-day HR operation
  • Real-time data synchronization and monitoring
  • Enhanced business intelligence with error-free documents and reports

Key Features

  • Input and approval flow of earnings, deductions, and recurring deductions
  • Workday and DTR file processing to capture employee’s Daily Time Records and time-offs
  • Employee Information Service for managing employee details and previous employer details
  • Identity Service for authorization and token management

Highlights

  • Microservices follow the CQRS-ES pattern to provide built-in audit trails
  • SignalR is used for real-time notifications and progress bars
  • Authorization Code + PKCE flow is used to implement security between the end user and APIs
  • Microservices are dockerized to aid development, scalability, and hassle-free deployment
  • Deployment in various environments (QA, UAT, pre-production, production) are done in Kubernetes clusters
  • Security Token Service (STS) is implemented using IdentityServer4

Technologies

  • ASP.Net Core 2.2 Web API
  • Angular 8
  • MySQL using JSON columns
  • MongoDB (EventStore)
  • Elasticsearch
  • RabbitMQ
  • Docker
  • Kubernetes
  • Ocelot API Gateway
  • WeaveScope
  • New Relic (APM)

More Stories

More Stories
QBurst, end-to-end software development

Welcome to QBurst.com

Login with Google

QBurst, end-to-end software development Google
{'en-in': 'https://www.qburst.com/en-in/', 'en-jp': 'https://www.qburst.com/en-jp/', 'ja-jp': 'https://www.qburst.com/ja-jp/', 'en-au': 'https://www.qburst.com/en-au/', 'en-uk': 'https://www.qburst.com/en-uk/', 'en-ca': 'https://www.qburst.com/en-ca/', 'en-sg': 'https://www.qburst.com/en-sg/', 'en-ae': 'https://www.qburst.com/en-ae/', 'en-us': 'https://www.qburst.com/en-us/', 'en-za': 'https://www.qburst.com/en-za/', 'en-de': 'https://www.qburst.com/en-de/', 'de-de': 'https://www.qburst.com/de-de/', 'x-default': 'https://www.qburst.com/'}