Выбор ответа Middle Микросервисы глазами аналитика обновлено
Backend for frontend
Вопрос
Мобильному приложению нужен компактный ответ из трёх сервисов на один экран, а веб-версии другой набор данных. Какой паттерн подходит?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: BFF: отдельный фасад под каждый тип клиента. Backend for frontend агрегирует и адаптирует данные под конкретного клиента, уменьшая число запросов по мобильной сети.
Варианты ответа
- Мобильное приложение само вызывает все три сервиса напрямую
- Перенести логику агрегации в базу данных
- Один универсальный эндпоинт со всеми полями для всех клиентов
- BFF: отдельный фасад под каждый тип клиентаправильный ответ
Разбор
Backend for frontend агрегирует и адаптирует данные под конкретного клиента, уменьшая число запросов по мобильной сети. Прямые вызовы трёх сервисов дают лишние задержки и связывают приложение с внутренней структурой. Универсальный эндпоинт отдаёт лишнее и становится узким местом для изменений. Логика в базе не решает задачу агрегации.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.