Выбор ответа Middle Микросервисы глазами аналитика обновлено

Backend for frontend

Вопрос

Мобильному приложению нужен компактный ответ из трёх сервисов на один экран, а веб-версии другой набор данных. Какой паттерн подходит?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: BFF: отдельный фасад под каждый тип клиента. Backend for frontend агрегирует и адаптирует данные под конкретного клиента, уменьшая число запросов по мобильной сети.

Варианты ответа

  1. Мобильное приложение само вызывает все три сервиса напрямую
  2. Перенести логику агрегации в базу данных
  3. Один универсальный эндпоинт со всеми полями для всех клиентов
  4. BFF: отдельный фасад под каждый тип клиентаправильный ответ

Разбор

Backend for frontend агрегирует и адаптирует данные под конкретного клиента, уменьшая число запросов по мобильной сети. Прямые вызовы трёх сервисов дают лишние задержки и связывают приложение с внутренней структурой. Универсальный эндпоинт отдаёт лишнее и становится узким местом для изменений. Логика в базе не решает задачу агрегации.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.