RUTUBE внедряет универсальный посредник между фронтендом и бэкендом
Краткое резюме
В статье рассматривается использование паттерна BFF (Backend for Frontend) в RUTUBE для улучшения взаимодействия между фронтендом и бэкендом. Обсуждаются преимущества BFF, отказ от GraphQL и отличия от API Gateway.
Аббревиатура BFF имеет два значения: помимо «Backend for Frontend» она расшифровывается как «Best Friends Forever». И это не просто шутка в контексте данной статьи.
Взаимодействие между фронтендом и бэкендом не всегда проходит без проблем. Когда клиент запрашивает данные, бэкенд предоставляет их, но зачастую данных оказывается гораздо больше, чем необходимо. Это приводит к увеличению времени отклика и замедлению отрисовки фронтенда, что негативно сказывается на пользовательском опыте.
Можно ли создать промежуточное звено между фронтендом и бэкендом, которое распределит нагрузку и улучшит взаимодействие? В этом и заключается основная идея паттерна BFF. В статье мы подробно рассмотрим, зачем его внедрять и как он способствует масштабированию современных сервисов.
Мы также обсудим, как применяем этот подход в RUTUBE и какие преимущества он нам приносит. Кроме того, мы объясним, почему отказались от использования GraphQL, в чём отличия от API Gateway и как проектировать подобные сервисы.