Для переводов нужны API, проверка прав и лимитов, неизменяемый учёт проводок, оркестрация операции и интеграция с внешним провайдером. Ключевые свойства — отсутствие двойного списания и восстановимость.
Кейс 5 (заменённый): Мы хотим создать новое приложение — сервис для переводов, чтобы можно было отправлять переводы от одной стороны к другой. Какова должна быть архитектура этого приложения? Спроектируй архитектуру такого приложения.
Для переводов нужны API, проверка прав и лимитов, неизменяемый учёт проводок, оркестрация операции и интеграция с внешним провайдером. Ключевые свойства — отсутствие двойного списания и восстановимость.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для переводов нужны API, проверка прав и лимитов, неизменяемый учёт проводок, оркестрация операции и интеграция с внешним провайдером. Ключевые свойства — отсутствие двойного списания и восстановимость.
Сначала уточните валюты, внутренние или внешние переводы, объёмы и допустимые задержки. Запрос получает идентификатор и идемпотентный ключ, проверяется доступ к источнику средств. Внутренние проводки создаются атомарно с сохранением балансовых инвариантов. Для внешних переводов храните состояния pending/succeeded/failed, outbox и результаты сверки с провайдером. Таймаут не означает отказ: повторять списание без выяснения статуса нельзя. Нужны аудит, мониторинг и процедура разбора зависших операций.