Доработка и улучшение брокерского сервиса для сбора данных по торговым распоряжениям
В 2020 году на фондовом рынке РФ произошел бум инвестиций. Количество держателей брокерских счетов выросло более чем в 2 раза — до 9,9 млн человек. По данным Росстата, это почти 12% экономически активного населения страны.
Для того, чтобы удерживать лидерские позиции на рынке, брокеры постоянно работают над бонусными программами и предложениями, а также развивают свои IT-продукты.
Задача
В начале этого года один из клиентов обратился к нам с задачами по доработкам и улучшению брокерского сервиса. Рассказываем про процесс разработки и делимся первыми результатами в кейсе.
Сервис для сбора данных по торговым распоряжениям. На проекте мы работаем над частью сервиса, который собирает данные по размещению и снятию торговых распоряжений в разделе ценных бумаг, облигаций и валютной секции. Кроме того, принимает и передает поручения от пользователей на биржу и возвращает результат исполнения.
Подсистема для сбора и обработки информации по финансовым инструментам. Второе направление — это часть приложения, которое собирает и объединяет информацию по финансовым инструментам из различных источников. Затем эти данные передаются пользователям в другие разделы сервиса.
Решение
Специалисты SimbirSoft занимаются расширением и поддержкой функционала системы:
1. Работа с интернализацией заявок. Благодаря этой фиче, пользователь получает исполнение запросов на продажу или покупку ценных бумаг от самого банка по выгодной стоимости.
В рамках задачи наши сотрудники оптимизировали запросы к базе данных под большой нагрузкой и настроили расширение протокола обмена между сервисами.
2. Подготовка релиза по размещению стоп-заявок на бирже. Позволяет установить стоимость, по которой пользователь хочет купить или продать ценные бумаги. Сделка совершается автоматически, как только нужная цена появляется на рынке.
Результат
Под руководством команды клиента наши специалисты выполняли следующие задачи:
1. Провели рефакторинг legacy кода. В результате чего улучшили логирование ошибок и стабильность работы программы с получением и обновлением эмитентов и корпоративных действий.
2. Перенесли на новый движок ядро планировщика задач (scheduler), который запускает серверные процессы. Это нужно для стабильной работы приложения, сокращения времени выполнения процессов и серверной нагрузки, повышения точности и качества данных.
3. Проанализировали код и ускорили выполнение методов корпоративных действий с 2,5 до 0,1 сек.
4. Реализовали функционал выбора ручного или автоматизированного обновления поля признака эмитента. Кроме того, добавили возможность редактирования информации о пользователе. Это позволило упростить работу в сервисе для сотрудников клиента.
Работа над проектом продолжается. В планах — перенос части функционала сервиса в отдельное приложение.
Технологии
Golang, Postgres, Couchbase, Apache Kafka, Kubernetes.