Кейс · NDA — подробности по запросу
Движок принятия кредитных решений для рассрочки
Сервис скоринга и принятия решений, который превращает схему процесса риск-отдела в версионируемую исполняемую политику — два гейта, правила лимитов, очередь ручной проверки и строгий контроль платных запросов в кредитное бюро.
- Клиент
- Ритейлер с рассрочкой, риск-отдел
- Роль
- Архитектор и инженер — анализ процесса, модель политики, сервис, интерфейс
- Сроки
- MVP развёрнут · далее живые интеграции
- Стек
- PythonFastAPIPydanticstructlogReactTypeScriptTailwindnginx
Задача
Решения по заявкам на рассрочку принимались по процессу, который существовал только в виде схемы и в головах риск-отдела. Часть правил противоречила друг другу, лимиты считались вручную, а платные проверки в бюро иногда запускались для заявителей, которым всё равно отказали бы.
Бизнесу нужны были решения — последовательные, объяснимые и недорогие, а правила должен был контролировать риск-отдел, а не разработчики.
Подход и архитектура
- Перевёл схему процесса в реестр из 49 правил и задокументировал 8 противоречий для владельца процесса, юристов и руководства — чтобы их разрешили до написания кода.
- Спроектировал гексагональный сервис: правила — чистые функции, политика — версионируемые JSON-документы, порты с адаптерами для внешних систем — заглушка, ввод оператором и боевой режим.
- Два гейта — внутренние реестры и платёжная дисциплина, затем стоп-факторы бюро — и далее правила лимита, долговой нагрузки, предоплаты и встречных предложений. Оркестратор с 14 рабочими и 6 финальными состояниями, сроками из политики и очередью ручной проверки с SLA.
- Контроль платных вызовов: внешняя проверка запрещена, пока не пройден гейт, который её разрешает; вызовы идемпотентны, и каждый записывается в журнал затрат.
Результат
- Каждое решение возвращает трассировку по правилам — риск-отдел видит, почему заявка одобрена, урезана или отклонена.
- Песочница политик позволяет риск-отделу проверять новые версии политики на обезличенных заявках до выката.
- MVP развёрнут за авторизацией; следующий этап — хранение данных и живые интеграции с бюро.
Что обеспечило надёжность
- 160+ тестов, включая 28 сценариев на обезличенных заявках и тест, который падает, если документация расходится с сервисом.
- Проектное предложение из семи частей — архитектура, контракты интеграций и DDL, антифрод, регулирование, ML-дорожная карта, план поставки — написано до реализации.
- Применимое регулирование потребительского кредитования проанализировано и отражено в наборе правил.
Похожая задача?
Расскажите о ней — честно оценю объём, подход и то, каким может быть первый этап.