Разработка комплексной системы для страховой компании
Разработали и внедрили высоконагруженную платформу для автоматического принятия решений о прекращении страховых услуг.
Система объединила веб-интерфейс для клиентов и серверную часть, заменив сложный, медленный и зависимый от человеческого фактора процесс.
Клиент
Страховая компания
Задача
Бизнес-задачи:
-
Автоматизировать и сократить время принятия решения о прекращении договора страхования.
-
Исключить ошибки и повысить согласованность данных за счет автоматизации.
-
Увеличить пропускную способность и масштабируемость сервиса для роста бизнеса.
Технические задачи:
-
Переработать монолитную систему с критическими связями в микросервисную, отказоустойчивую архитектуру.
-
Реализовать механизм принятия решений на основе строгих правил, обрабатывающий множество вариативных входных данных.
-
Обеспечить целостность и согласованность данных между всеми компонентами системы.
Подход и гипотезы
Чтобы обеспечить гибкость, упростить сопровождение и масштабировать отдельные модули по мере роста нагрузки, мы перенесли систему на микросервисную архитектуру.
Она позволила:
-
четко изолировать зоны ответственности;
-
повысить отказоустойчивость (сбой одного сервиса не влияет на работу всей системы);
-
внедрить независимое развертывание компонентов;
-
устранить ограничения старой монолитной, взаимозависимой системы.
Этап 1: Аналитика и проектирование ( 4 недели)
Мы провели детальный анализ бизнес-процесса с тремя контурами согласования (бизнес, архитектура, solution), сформировали техническое задание и спроектировали архитектуру будущего решения.
Инструменты: Jira, Confluence, Draw.io.
Этап 2: Разработка ядра и сервисов (20 недель)
Разработка велась итерационно, с фокусом на отдельные микросервисы.
Например, мы модернизировали систему обмена данными между сервисами для повышения скорости обработки критериев, влияющих на решение о терминации (процесс расторжения договоров в сфере страхования). Каждый этап длился от 2 до 4 недель.
Инструменты: Java/Spring Boot (серверная часть), PostgreSQL, RabbitMQ, Docker.
Команда проекта
13 специалистов:
-
Product Owner — 1
-
Scrum-мастер — 1
-
Бизнес-/системные аналитики — 3
-
Frontend-разработчики — 2
-
Backend-разработчики — 3
-
Тестировщики — 3
Результат
Заказчик получил платформу, которая автоматически собирает пользовательские данные из разных источников, анализирует их по заданным правилам, принимает решение о терминации страхового продукта и уведомляет все задействованные службы.
Бизнес-эффект
-
Процесс, требовавший ручных согласований, стал полностью автоматическим.
-
Повысили точность и прозрачность процессов за счет исключения человеческого фактора и стандартизации правил принятия решений.
Трудности
Основной сложностью на протяжении всего проекта была поддержка согласованности данных между множеством распределенных систем. Мы преодолели это за счет:
-
Внедрения отказоустойчивых механизмов очередей (RabbitMQ) для асинхронного обмена сообщениями.
-
Реализации шаблона Saga для управления распределенными транзакциями, что гарантировало целостность данных на всем пути обработки заявки.
-
Создания единого контура проверки консистентности данных на ключевых этапах процесса.
Технологии
- PostgreSQL
- Draw.io
- Figma
- React
- DBeaver
- REST API
- Swagger