A generic bank product applications processing solution for SKB Bank

Situation

SKB Lab provides the full cycle of research, development and implementation of next generation technologies for the banking sector. The company is a subsidiary of SKB Bank — one of TOP-100 Russian banks, based in Ekaterinburg.
In spring 2017 SKB Lab was assigned to select a stack of open source technologies to develop a new solution, which would support pipeline processing of bank product applications. The solution was meant to be flexible enough to support the full range of bank products with fully configurable processing flows.

Solution

CUBA Platform enabled the team to deliver core features and the user interface in an extremely short timeframe. The framework proved to be horizontally scalable and provided out-of-the-box support for complex data security requirements. With minimal efforts, developers implemented LDAP-based authentication, network traffic protection and fine-grained access control. The latter assumed controlling permissions to access data, settings and administration interfaces.

Camunda BPM acts as a pipeline processing engine for bank products applications. It is responsible for storing business process templates and executing process instances.

Camel adaptors are used for invoking an ever-growing range of external services. The BPM engine and adaptors interact via the Java application built on CUBA Platform. It comprises flexible storage of the attributes of bank products and applications, external service calls logic and other features.

The resulting solution allows adding new products via settings at runtime, providing that all required integration modules are ready.

The key features of the solution are listed below.

Product catalog contains the description of the:
- banking product (e.g. loan) parameters
- related business processes, i.e. link to the process template identifier and a set of process variables
- storage parameters (biographical and financial details on a transaction).

The routed object concept acts as a nexus for all interactions within the system. While being processed, each routed object instance creates a linked process instance in the BPM core and keeps polling its state (stage and processing parameters) until process termination. However, the lifecycle of a routed object instance is broader than the corresponding lifecycle of the linked process instance in the BPM core.

The parameters storage subsystem provides a unified hierarchical storage of the values of variables and domain parameters. For instance, Individual is a base parameter for Address, Contact Information, Income Details, Credit History and other. The nesting level and the number of parameter attributes are not limited and are configured at runtime.

External services catalogue stores the list and structure of input and output variables arrays for each specific service. Using the combination of tags described in a process node, the BPM engine notifies which services should be invoked, and expects updated process variables as a result.

The Monitoring subsystem visualizes application handling process and displays details down to the level of a certain variable, showing its value at each processing stage.

Result

The production use of the solution has started in autumn 2017 from processing loan requests from bank group employees. The first weeks of operation have confirmed that the solution based on open source technologies met or exceeded all Bank requirements to the key parameters, including:

uptime,

performance,

horizontal scaling and

security.

At the same time, open architecture and full control of the source code allow fast modifications and further development according to the Bank requirements.

The rollout of the solution has delivered measurable benefits to SKB bank, including reduced loan applications processing time and maintenance costs, such as license fees, technical support and hardware. As a result, the bank intends to apply the solution to handling a wide range of bank products and services applications.