Сделайте единый шлюз с проверкой доступа, TTL-кэшем и объединением одновременных запросов одного документа. Экономия не должна превращать устаревшие данные в молчаливое основание решения.
Кеширующий шлюз для платного банковского API
Сделайте единый шлюз с проверкой доступа, TTL-кэшем и объединением одновременных запросов одного документа. Экономия не должна превращать устаревшие данные в молчаливое основание решения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо спроектировать эффективную архитектуру взаимодействия с внешним платным банковским сервисом, который выдаёт данные о кредитоспособности по номеру паспорта. В условиях микросервисного окружения множество сервисов будут запрашивать эту информацию. Требуется реализовать центральный сервис‑обёртку, принимающий запросы от внутренних компонентов, вызывающий внешний API только при необходимости и применяющий кеширование, чтобы сократить количество платных вызовов.
Ответ
Сделайте единый шлюз с проверкой доступа, TTL-кэшем и объединением одновременных запросов одного документа. Экономия не должна превращать устаревшие данные в молчаливое основание решения.
Ключ кэша учитывает нормализованный идентификатор, вид отчёта и версию источника; наружу и в логи паспорт не раскрывайте, для технических ключей используйте защищённое псевдонимирование. TTL и допустимость хранения согласуйте с требованиями и договором поставщика. Ограничьте бюджет вызовов, повторы и конкурентность, фиксируйте свежесть результата. При сбое возвращайте явный статус, а не выдуманную оценку кредитоспособности. Между репликами нужна общая координация одинаковых запросов.