Duration: 9 months, ongoing
Industry: Finance and Banking
Employees: over 250
Revenue: $40 million
The client is an innovative German bank digitally transforming its services and constantly improving financial products. One of the areas identified for performance improvements and gaining additional competitive advantage is automation of loan application processing, and risk management automation
Upon originating a loan, banks have to monitor corresponding payments and validate payment parameters against loan terms and conditions. The technical payment parameters should be monitored on a daily basis, signalizing violations of their performance if any. Automating such monitoring became a task our client assigned to Aterise.
Aterise was challenged to build a software solution that complies with supervisory authority requirements. Specific requirements are placed on the stability of the system and the consistency of its state. Data Corruptions or inconsistencies may have serious consequences for the bank, and controversial situations with the bodies supervising the banking sector can occur.
Additionally, the system was supposed to receive a sufficiently large amount of data from third-party systems, many of which are specific to a particular country or region. The solution was required to allow flexible configuration for different countries in which the bank operates.
After an in-depth analysis, we developed a flexible architecture that, after development, allowed us to create a truly stable and flexible system that monitors the execution of credit contracts.
Contracts are conducted on a set of states in accordance with a given logic, which allows to gently resolve the most disputable situations in a fully automatic mode and involve bank employees only within extreme cases. The service also makes sure that the necessary manual procedures are carried out and helps all the parties involved in the payment process.
We chose an Event Sourcing approach as a basic architecture, in which the current state of the system can be calculated based on the sequence of events that are themselves separate entities. This made it possible to achieve exceptional stability of the solution, where it in most cases can independently restore the correct state after a failure of the entire system, its individual components, or external data sources.
We also paid due attention to the support mechanism of requirements versioning so as not to affect the historical data by the introduction of any kinds of new functions. In this configuration, the system always has an adequate full history of each contract, which is available for analysis to bank employees and, if necessary, could be provided to the supervisors.
You've landed in the right place, let us know what can we do for you!