Конспект по теме 'BFF (Backend for Frontend)' из категории 'Па | .NET backend study
Конспект по теме "BFF (Backend for Frontend)" из категории "Паттерны"
Данный паттерн позволяет создать некую прослойку между клиентом и всеми backend-микросервисами. Эта прослойка называется BFF.
Алгоритм работы:
⦁ BFF получает запрос от клиента; ⦁ BFF осуществляет обработку и преобразование/обогащение данных, пришедших от клиента (опционально); ⦁ BFF перенаправляет клиентский запрос нужному backend-микросервису; ⦁ Backend-микросервис обрабатывает запрос и отдаёт ответ BFF; ⦁ BFF осуществляет обработку и преобразование/обогащение данных, пришедших от backend-микросервиса (опционально); ⦁ BFF возвращает итоговый ответ клиенту.
Одна из возможных реализаций BFF на клиенте - язык запросов GraphQL (ссылка на конспект по GraphQL).
Преимущества данного подхода:
⦁ Фильтрация - клиент получает только то, что ему нужно; ⦁ Скрываются детали реализации backend. Клиент не привязывается к архитектуре backend. Работа ведётся с прослойкой; ⦁ На клиенте код получается более чистым и пишется меньше логики и проверок; ⦁ На backend появляется прослойка для модификации, предобработки и постобработки данных.
Минусы этого подхода:
⦁ Добавляется ещё один этап обработки запроса - соответственно, повод для проседания производительности; ⦁ Новый код - повод для багов, увеличение сроков разработки.