FinTech / Compliance
СОРМ-модуль для МФО
Автономный модуль законного перехвата (ПТС ОРМ), разработанный для информационной системы микрофинансовой организации. Модуль принимает данные от внутренних сервисов, хранит их в PostgreSQL и предоставляет доступ пульту управления уполномоченного государственного органа через регламентированный GraphQL API по выделенному зашифрованному каналу связи.
Архитектура
Развёрнут как отдельный программный модуль (вариант «б» по требованиям ПТС) с собственной базой данных, изолированный от основной информационной системы. Стек: Python 3.11+, PostgreSQL 15+ (PostGIS, pg_trgm), Strawberry GraphQL, Uvicorn/Starlette. Обработка отложенных задач — Celery + Redis.
GraphQL API
Четыре эндпоинта: /query (HTTP 1.1) для поисковых и специальных запросов с курсорной и offset-пагинацией, /subscription (WebSocket, субпротокол graphql-transport-ws) для подписок на данные в реальном времени и сигналов о состоянии системы, /download для передачи неформатированных данных с chunked encoding и range requests, и /metric с Prometheus-совместимыми PromQL-эндпоинтами для мониторинга.
Модель данных
Пять типов сущностей, поступающих от внутренних сервисов через валидированный REST API: Пользователи (с хронологией изменений SCD Type 2), AAA-события (вход/выход), События услуг (создание счёта, выдача/погашение займа), Коммуникации и Платежи. Все таблицы партиционированы помесячно по timestamp для эффективного 3-летнего хранения (~1 ТБ прогнозируемый объём).
Движок отложенных запросов
Сложные запросы, превышающие настраиваемые тайм-ауты, автоматически маршрутизируются в Celery workers. Пульт управления подписывается на обновления статуса (NOTSTARTED → RUNNING → READY) через WebSocket и получает результаты по готовности. Поддерживается отмена, удаление и автоматическая очистка по TTL.
Безопасность
Взаимная аутентификация TLS (X.509) с индивидуальными сертификатами для каждого ПУ через VPN-туннелированный выделенный канал. Полное журналирование всех сеансов, запросов, изменений конфигурации и попыток несанкционированного доступа. Сигналы (UNAUTHORIZEDACCESS, CRITICALERROR, SCHEMACHANGED и др.) передаются на ПУ в реальном времени с гарантированной доставкой при восстановлении соединения.
Ключевые особенности
- GraphQL + WebSocket — регламентированный API с подписками в реальном времени (graphql-transport-ws)
- Движок отложенных запросов — асинхронная обработка на Celery с отслеживанием статуса
- Хранение 3 года — помесячное партиционирование, ~1 ТБ прогнозируемый объём
- Полное соответствие ФЗ №153 — обработка персональных данных согласно требованиям законодательства РФ
- Мониторинг Prometheus — PromQL-совместимый эндпоинт /metric
- Сигналы о состоянии — уведомления о здоровье системы с гарантированной доставкой
- ~80 000 событий/сутки — валидация, нормализация и индексация для полнотекстового поиска