Our Finance Service web app efficiently manages incoming and outgoing benefit payments for over 160.000 Belgian construction workers.
Client name Constructiv
Industry Construction
Technology .NET, Angular
Location Brussels, Belgium
Team size 22
Project duration 5 years – ongoing
Constructiv is a service organization of and for the construction sector. It is a livelihood fund set up by the social partners of the Construction Company whose members include Belgian construction worker syndicates. The core of their business is the calculation of benefits for approximately 160.000 workers in the Belgian construction sector.
The client’s internal enterprise system called CoBen has multiple microservices that calculate various types of benefit payments for workers, or debts in case of overpayments. The issue was that they didn’t have an automated way of managing these payment flows and that each benefit was unique. So, finding a way to standardize them was a challenge in itself. Another challenge was communication since these benefits needed to sometimes communicate with other benefits in the ecosystem.
Digitalizing the processing of incoming payments and automatically match them to benefits or debts
Standardizing the process so that it can be applied to each type of benefit
Using event sourcing and domain-driven design practices we were able to standardize the main process but also modify it when necessary to cater to each benefit. So, benefits now act as a separate service with independent lifecycles. Given the project’s success, we also ended up handling the processing of outgoing payment requests.
For incoming payments, the incoming payment .cod files are processed and show up in the incoming payment screen. They can be further forwarded outside the system or linked to existing debts.
Outgoing payments are made when benefits send payment requests to the Finance Service app, after which admins can see a payment request in-app that they can approve (not approve) depending on predefined metrics. The app then sends the outgoing payment request to external providers – accounting applications and then banks.
Using the event sourcing methodology we can track the payment flow each step of the way. Not only that, but the users can see it too from the moment the request arrives in the Finance Service app to the status change and when it’s finally completed.
Concerning the communication challenge, we decided on the NServiceBus messaging solution making it a microservice architecture. The service had to be part of the main CoBen application, so our technology stack for the backend (.NET) and frontend (Angular) was already defined.
We also used the event sourcing development pattern which is highly efficient with financial applications.
Potential issues are easy to find, fix, and prevent
No data loss and a self-healing system that is resilient to errors
All relevant events can be used later for building records that users can consult
Easily introducing new types of events, and quickly adding logic without impacting the older code
Dirk Berckmans
ICT Coordinator, Constructiv