System Design
1.
В компании есть несколько внутренних приложений, например биллинг, CRM и веб-портал, которым нужно работать с внешним эквайером: принимать платежи, делать возвраты, проверять статусы и получать чеки.
Нужно спроектировать единый интеграционный сервис, через который внутренние системы будут взаимодействовать с внешними эквайерами, например Сбербанком, ЮKassa и другими. В дальнейшем система должна поддерживать подключение сразу нескольких эквайеров.
Функциональные требования:
- генерация ссылки на оплату с автоматическим выбором эквайринга
- информирование систем-потребителей об изменении статуса платежа
- передача чека в системы-потребители
Требуется подготовить краткое описание или документ, в котором нужно:
- описать ключевые компоненты архитектуры сервиса
- продумать взаимодействие внутренних сервисов с интеграционной прослойкой
- описать API-контракт между внутренними системами и прослойкой
- описать взаимодействие прослойки с внешним эквайером, включая вебхуки, подписи и другие аспекты
- определить, какие данные нужно хранить и зачем
- предложить механизм обработки ошибок, таймаутов, повторов и защиты от дублей
- показать, как архитектура будет расширяться под новых эквайеров
- продумать безопасность: аутентификацию, защиту от подмены, шифрование и другое
- описать мониторинг сервиса 10 .перечислить возможные риски и ограничения на старте