Расскажите про сервис черных списков, его задачи и сложности
Что проверяют
Можете ли вы объяснить систему, которую делали, целиком: зачем она бизнесу, как устроены чтение и запись, где узкие места. Сервис чёрных списков удобен как тема, потому что в нём сходятся быстрый доступ на горячем пути, редкая запись, точность совпадений и цена ошибки. Слушают, думали ли вы про ложные срабатывания и про поведение при отказе.
Как отвечать
Начните с назначения, а не с технологий: кого и по какому признаку блокируем (аккаунт, телефон, карта, устройство, адрес), кто пополняет список (оператор, антифрод, внешний источник) и что происходит после срабатывания.
Дальше контракт и данные:
- проверка синхронная, на горячем пути, с жёстким таймаутом, поэтому решение о поведении при недоступности принимается заранее и осознанно: пропускать или блокировать;
- ключ нормализуется до сравнения: регистр, пробелы, формат номера, юникод. Иначе одна и та же сущность живёт в списке в трёх видах;
- хранение в базе как источник правды, горячий слой в кэше, инвалидация по событию, а не только по времени;
- у записи есть причина, автор и срок жизни: список без снятия блокировок разрастается и начинает бить по своим;
- массовые проверки идут пачками, а не по одному запросу на элемент.
Сложности назовите сами: ложные срабатывания и процесс обжалования, хранение чувствительных значений в виде хэшей, гонки при обновлении кэша, ревизия старых записей.
Где спотыкаются
Пересказывают общую теорию про спам и мошенников вместо своего сервиса. Вопрос про ваш опыт, и абстрактное описание читается как признак, что вы этот кусок не писали.
Тянут в ответ машинное обучение, когда задача про точное совпадение по ключу. Модель нужна для оценки риска, а чёрный список это детерминированная проверка, и смешивать их в одном ответе значит показать, что граница не видна.
Забывают про обратную сторону: как запись из списка убирается, кто это может сделать и что видит пользователь. Про добавление рассказывают все, про снятие почти никто.