The system is essential for Forex market analysts, which are spread around the world and need to be able to evaluate information at the world financial markets without delays for reduction of risks related to making of investment decisions.
Byndyusoft was set a task to create a monitoring and risk management service for the Forex market
from scratch. For this purpose it was required to collect and process live information streams from
internal information (dealing) systems of the company, allocated all over the world, analyze data and
display results in such way, that the analyst could track all changes (grid description) on a
In the process of designing
of the system architecture, special attention was given to the ability of analytical service to withstand
high loads (about 100 000 changes per second), provide protection from unauthorized access and demonstrate high
The customer was not ready to clearly state the task description as of the start of works, therefore the team decided to execute the development of service without preparation by taking the following steps:
The goal of the team and the customer was to examine the possible solutions and by means of multiple iterations obtain a product, resolving the problems of the customer. It is nearly impossible for analysts to come up with such a project at one blow.
Quality and reliability of the systems were ensured by autotests. Two types of tests were written:
modular tests and integration tests. Modular and integration tests covered almost 100% of
Modular tests were run in the event of any modifications in the code to assure that the logic remains in good working order. Integration tests were run on a daily basis through the CI server — TeamCity to check all the business scenarios from the viewpoint of user interface.
As a result of full automatic checking, new versions started to be delivered every week, and later on — every day. Big releases were produced once a month.
Analytics system obtained and processed data, which were coming through message queues from other internal services of the customer company. This allowed to increase reliability of the system, to implement parallel processing of data for reduction of processing time and to increase response rate of the client.
After several prototypes the system was completed and handed over to the customer. Currently it is integrated into the customer’s infrastructure and is in operation as one of internal services of the company.