Capital Requirements Reporting System
Background
As part of Brexit, The Bank had to build a system that would do Finance Reporting for certain regulations like (Capital Requirements Directive CRD V, Counterparty Credit Risk SA CCR, Liquidity Reporting) to the EU regulators.
Implementation
The AxiomSL Reporting Product was decided to be used to do the actual calculations. So the task involved sourcing the entire open trade population within the bank (all asset classes) along with reference data, sensitivities, ledger etc. Extraction and transformation of the data had to be done as per the business requirements to map the internal data model to Axiom data model. The data would then be put through the calculation engine to generate the reporting numbers on a daily basis.
We studied all the trade data extraction and mapping rules that needed to be done and implemented a framework that allowed the extraction and mapping logic to be specified as configuration. They covered almost 90% of the scenarios that were needed for the project. Custom mapping and extraction hooks were implemented into the framework to support the remaining 10% scenarios to write the complex mappings. Java parallel streams were used to allow the application to be scaled as per the load. The entire mapping/extraction was backed by automated tests that tested it against every possible product type in the bank.
The end result was a system which was very easily modifiable as the mapping requirements changed. It provided good visibility of the mapping in the code. It ran as a batch job every night after the bank EOD and was easily scaled to the reporting timeline requirements.
Tech Stack: Java 8, Spring/Spring Boot, REST, Mongo DB, JPA, Hibernate, Multithreading, XML, XSD, Xpath, FpML, JSON, Mockito, Fitnesse, Maven, Jenkins, Bamboo, Sybase, AMQ, Linux, SVN/Enterprise GitHub, Nexus Repository.