Перейти к содержанию

ADR-0001 · Спорная зона: что передаётся по клиентам с полисами обоих направлений#

Статус:    принят · 2026-09-18
Метод:     D-07 v1.0 · шаблон ADR v1.2
Участники: команда (9 человек), юрист, владелец направления

Учебная запись: часть узкого прогона U-01, система вымышлена. Форма и рассуждение настоящие.

Контекст#

Вход — 00-context.md. Этот ADR не планировался.

Договор говорит: покупатель обслуживает клиентов проданного направления. У 1,1 млн клиентов полисы обоих направлений, и они клиенты обоих. Договор этого случая не разрешает — он его не предвидел. Значит линию надо выбрать, а выбор линии данных — это D-07, а не D-08.

Область решения — одна связная группа: профили и обращения 1,1 млн спорных клиентов.

Реестр копий#

Куда Как попадает Доходит ли изменение Можно ли удалить
Основная база профилей Запись — Да
История обращений, вложения в объектном хранилище Запись — Да
Выгрузка перестраховщику, ежемесячно за 5 лет Регулярная передача наружу Нет Нет — уехало [режим]
Вебхуки 22 партнёрам Событие полиса Нет Нет — доставлено
Витрина отчётности Ночная выгрузка Односторонне Да
Резервные копии Еженедельно, 60 суток Нет Нет, пока не истекут
Система покупателя — после передачи Передача по договору Нет: мы не управляем приёмником Нет [режим]

Седьмая строка — новая для набора. Во всех прежних применениях D-07 последняя копия была нашей. Здесь появляется копия, о которой нельзя даже узнать, дошло ли до неё изменение.

Дисквалификаторы#

Условие Что вышло
Разделение размазывает защищаемые данные по нескольким владельцам Сработал и неустраним. После передачи ПДн 1,1 млн человек держат две организации. D-07 велит линию двигать, а не оплачивать — двигать её здесь можно только в сторону минимума передаваемого
Есть копия, из которой нельзя удалить Сработал трижды: выгрузка перестраховщику, доставленные вебхуки, система покупателя. Решать надо до передачи — после будет нечего решать
Двойная запись без единого источника порядка Не сработал: до даты пишем только мы, после — только покупатель
Атомарность поперёк линии Не сработал: профиль и обращения читаются вместе, но атомарности между ними инвариант не требует
Отказ остаётся общим Неприменимо: приёмник не наш, общего отказа не бывает по построению

Рассмотренные варианты#

Ось Что записывать Передать профиль целиком Передать минимум по полису Не передавать спорных
Режим защиты Сколько мест держат ПДн и какой объём 2 места, весь профиль и вся история [режим] 2 места, но только привязанное к проданным полисам [режим] 1 место — но покупатель не может обслуживать
Отношения в данных Что рвётся Ничего 1,2 млн обращений без привязки остаются у нас [схема] Полис без держателя — нерабочее состояние
Управление изменениями Кто задевается при изменении схемы Мы и покупатель Мы и покупатель Мы
Число копий Мест синхронизировать 7 7 6
Исполнимость договора Может ли покупатель обслуживать Да Да Нет — договор не исполнен
Что уезжает лишнего Данные о нашем оставшемся бизнесе Уезжают: обращения по нашим полисам внутри общей истории Не уезжают —

Нулевой вариант «не передавать спорных» отсекается договором, а не осями — покупатель обязан обслуживать проданные полисы, а полис без держателя не обслуживается.

Решение#

Передаётся минимум, привязанный к проданным полисам.

Что Передаётся Остаётся у нас
Профиль спорного клиента Копия: идентификатор, ФИО, контакты, согласия Оригинал
Полисы Проданные Наши
Обращения Привязанные к проданным полисам Привязанные к нашим
Обращения без привязки к полису — 1,2 млн Не передаются Остаются

Правило для остатка названо явно: обращение, принадлежность которого к полису не установлена, не передаётся. Причина не в осторожности, а в том, что в нём с равной вероятностью данные о нашем оставшемся бизнесе, и передавать их покупателю нет ни основания, ни права.

Обоснование#

Решил дисквалификатор о защищаемых данных, и решил единственным доступным способом. Линию нельзя было сдвинуть так, чтобы ПДн остались у одного владельца: покупатель обязан обслуживать людей, значит обязан знать, кто они. Дисквалификатор в такой ситуации не отменяет линию, а задаёт направление — минимизировать передаваемое, а не оптимизировать удобство приёмника.

Спорным оказался не клиент, а обращение. Как только единицей передачи стал полис, а не клиент, 1,1 млн спорных клиентов перестали быть спорными: спорными остались 1,2 млн обращений без привязки. Задача сузилась в двенадцать раз, и её удалось закрыть правилом, а не переговорами.

Последствия#

Отрицательные:

  • Покупатель получает неполную историю по 18 % своих клиентов, и узнает об этом в первом же обращении. Это должно попасть в приложение к договору, иначе станет спором через месяц после даты.
  • 1,2 млн обращений остаются непривязанными и у нас — задача, которую передача не решает, а обнажает.
  • ПДн 1,1 млн человек оказываются у двух организаций. Дисквалификатор сработал и не снят: он назвал направление, а не отменил проблему.
  • Мы не узнаем, дошло ли до приёмника удаление. Если клиент потребует стереть данные после даты, мы можем передать требование, но не проверить исполнение.

Положительные: передаваемый объём сокращён до привязанного к предмету договора; правило для остатка записано и проверяемо; седьмая строка реестра копий названа, а не обнаружена потом.

Замечание к методу: У6 — промах, и объявлять данностью нельзя#

Предсказание У6 утверждало: кроме D-08 и D-09 применять ничего не придётся. Пришлось применить D-07.

Соблазн был записать спорную зону как [договор] — вход, который читают, а не выбирают. Анти-подгонка записана в том же файле заранее: «если по ходу придётся выбрать то, что предполагалось прочитать в готовом виде, это промах, а не уточнение области». Договор спорной зоны не разрешает; выбор был наш.

Узкий прогон не остался узким, и это результат, а не сбой. Он говорит о границе между D-07 и D-08 ровно то, что оба документа утверждают в шапках: первый решает, делить ли и по какой линии, второй — как перебраться. Пока линия не проведена целиком, второй неприменим. В шапке D-08 это записано; в планировании прогона — не учтено.

Условия пересмотра#

  • Договор дополнен приложением, разрешающим спорную зону иначе.
  • Обращения без привязки к полису получили привязку — тогда правило для остатка больше не нужно.
  • Покупатель потребовал полную историю — вопрос уходит к юристам, а не к архитектуре.
  • Появилось требование стирания от спорного клиента — проверить, что путь требования доходит до приёмника.

Самая дорогая будущая граница#

Граница между «нашим» и «переданным» внутри профиля одного человека. Она проведена по признаку привязки к полису. Всякое будущее изменение состава профиля — новое поле, новое согласие, новый тип обращения — придётся класть по одну или другую сторону этой границы, и делать это будет уже не архитектор, а тот, кто добавляет поле.

Связанные ADR#

Зависимые: ADR-0002 — переход и его обратимость.