From monolith to distributed system

Constant growth of competition among the Banks makes it necessary to adapt to different categories of Customers. So, one is easier to go to the site and apply for a bank product online, while others are used to choosing new products and services directly during live communication with a bank representative. In September 2019 Home Credit Bank decided to launch a new process for the Client, the main purpose of which was to maintain the “Client - Bank Operator” contact and to refuse physical connection of the operator to the Bank’s office or counter in the shopping center.

The launch date of the pilot project was set for early December 2019. For its implementation, as soon as possible, it was necessary to develop a system with functionality for registering a personal and non-personal debit card for new and existing Bank customers.

On the way to a new platform


They began to look towards the tablet solution. The implementation of a new process on a tablet based on the architecture of the Bank’s current front-office system for Operators to work with the Client seemed irrational due to an outdated technological stack, as The current front office is a monolithic web application written 8 years ago in Silverlight. Attempts to work with the current front on the tablet were unsuccessful due to the overloaded ui-part of the application and the lack of adaptive layout. In addition, Microsoft's lack of Silverlight support subtly hinted that the life cycle of our current application was coming to an end and that there was a moment of radical redesign and the transition to new technologies. We came to the decision to implement microservice architecture. Why was it necessary to abandon the monolith? Firstly,due to the scalability of the solution, improved overall fault tolerance and independent component updates. Secondly, in the Bank, the tendency to distribute functionality between product teams and the microservice approach in this case gives greater flexibility and independence of teams.At the first stages, the following domains (microservices) were allocated for the pilot project: user, client, debit card, and incident. To create the back part of the application, they used the .Net Core 2.2 platform (recently switched to 3.0), borrowing elements of business logic from the system legacy. It was decided to build the front part using react.

UI / UX


In parallel with the definition of architecture, the application interface and process business logic were discussed. It was required to determine how the Operator will interact with the Client, what package of documents is needed, what information the Operator needs at each specific sale step. The goal was to simplify the current business process, rather than simply copying functionality to a new platform. So, in the new decision, the number of fields was reduced when a debit card application was opened and the questionnaire for the Client was excluded (collecting information about how the Client found out about Home Credit Bank). A function for quick access to registration of priority debit products has been added to the main page with customer data. And at the stage of approval, applications displayed detailed information about the tariffs and conditions for the product, which also helped the Operator.

For 8 years on a productive environment, the front page home page with Customer data and the functionality for connecting products and services has become too overloaded due to endless icons and fields.



I wanted to add “air” to the interface. Here, I had to prioritize, determining what functionality Operators needed first of all for access on the main page, which can be displayed on the side panel, and which can be abandoned due to uselessness (yes, yes! Such fields were found). As a result of the team’s fruitful work with the designer, the first thumbnails of the page with customer data and the page with the stages of creating an application for a debit card were designed.



Documentation


The knowledge base for the current front-office “lives” in Word with co-editing in SharePoint. The new project decided to pilot a new documentation process in Confluence in conjunction with Swagger for self-documentation. Our transition path, the pros and cons of the selected solution will be described in a separate article. I can only say that the topic of choosing a requirements management tool is still open, we are at the stage of searching for the optimal solution for keeping documentation up to date with a minimum investment of resources.

Let's hit the road!


As a result, our roadmap on the way to launch the coveted pilot looked like this.



The built-in team interaction system was able to catch the pilot deadline. At the start of the project, the team had to abandon waterfall and set foot on the Agile trail. It was an Agile adapted by our team. We parallelized: the developers started at the stage of agreement with the team on the implementation, which is usually reflected in the requirements before the start of development and agreed with all participants in the process. Open questions were discussed at meetings. Decisions were made by a team together. At any time, each team member could talk about the status of the project, everyone felt involved in the process and looked forward to the pilot according to the results of our work.

Pilot


The pilot took place in one of the largest shopping centers in Moscow on the eve of the New Year. For the pilot project, new sales specialists were hired who did not know banking products and had not previously worked with our current front-office system. The pilot’s results showed that new Users easily figured out the necessary sequence of actions in our new application, which meant that such a scheme could be launched at other sites, recruiting new specialists with minimal requirements.

In the new application, we looked towards constant updating of functionality on the product, based on the needs of Operators and Customers. So in the first week of launch, 25 small improvements were released based on the pilot's results. For example, in the package of documents when concluding the contract, a printed form with product tariffs was added, because Most Customers, having viewed the tariffs on the tablet from the Operator, expressed a desire to receive printed tariffs “on hand”.

Sales activity through the new platform was monitored online through a report on Graphana and rejoiced at each new signing of the contract.



Mistakes


There is a problem in the current front office when analyzing product errors - it is not always possible to restore the sequence of actions of the Operator, especially in cases where there are unpredictable transitions between application screens (identified ex-post) that are not embedded in the business logic of the process. The appeal to the User is usually inconclusive, because due to the large client flow, it is impossible to restore the sequence of actions performed in the application with a specific Client at a particular point in time. The new system also wanted to solve these problems. End-to-end logging for all microservices within the framework of the Session of the Client and the Operator, additional recording in the log of text messages for each action of the Operator (created a new Client, signed an agreement,connected sms-informing) and a full screen shot helped to quickly restore the picture of the business process, speeding up the analysis of product errors when viewing logs in GrayLog.


The pilot's goal was not only to implement a tablet solution, but also to lay the foundations for our future platform of the Home Credit Bank front-office system. Now we continue to improve. We are working on the addition of a new module “Credits” for working with the Bank's loan products. And also in the process of researching the use of new technologies (graphql, the purpose of which is not to drive extra data from the back to the front; camunda for flexible configuration of the business process; Prometheus for collecting business metrics for building reports).

In the future, we see the advancement of the tablet solution by adding the sales functionality of various types of banking products. Now the priority is to create the process of issuing a Bank credit card. Plus, expanding the area of ​​application of the tablet to electronics stores and representative offices of pension funds.

All Articles