// личный канал‑лог
gavrilovlog
← все записи

Что имеется ввиду под BFF(Backend For Frontend)

👁 453💬 9
Идея BFF основана на паттерне Gateway и имеет ряд преимуществ: 1. Общие шаблоны на клиенте и сервере (например JSX) 2. Единый язык на клиенте и промежуточном сервере BFF. 3. Высокая скорость ответа под нагрузкой. 4. Предварительная обработка данных Общие шаблоны важны, поскольку это ускоряет разработку и облегчает поддержку клиентской части приложения, отсюда и единый язык фронта и бэка. А высокая скорость ответ достигается за счет кэширования частых запросов. Четвертый пункт является наиболее существенным, так как позволяет обработать и подготовить формат ответа на стороне сервера. Таким образом, фронт будет получать данные в более удобном виде для их использования. В своей карьере я часто реализую паттерн Gateway, даже слишком 🙂 А BFF кажется редким введением в современных веб приложениях. Что думаете про BFF, на сколько удобным кажется и стоит ли использовать? (пишите в комментариях) Наш чат: @kyb_chat @knowyourbackend
4

Комментарии · 9

  • @lemniscaper
    Сразу оговорюсь, что я не бэкендер А если прокси сервер это все равно сервер, то это не означает, что он тоже отжирает ресурсы? Стоит ли удобство фронтендеров этих ресурсов? И насколько проста реализация? Мы просто отдельне урлы форвардим на конкретные реализации? Это средствами nginxa?
    • @gavrilovlog
      gateway скорее не целый сервер, а тоже микросервис. Какие именно ресурсы ты имеешь ввиду? Ресурсы сервера или затраты человекачасов?
      • @lemniscaper
        Сервера
  • @aakkaakkaakk
    Был ли опыт настройки веб-сокетов или сабскрипшинов (если говорим про graphql) через gateway?
    • @gavrilovlog
      да и это скорее тема отдельного поста, про микросервисную архитектуру.
      • @aakkaakkaakk
        Было бы очень интересно узнать про эту тему на основе вашего опыта. Был опыт настройки bff для фронта, но сабскрипшены так и не удалось зафорвардить через бфф, клиент работает напрямую с хасурой касаемо сабскрибшнов, все остальное через bff.
        • @gavrilovlog
          А для каких задач использовали подписки? Что за сервис? Действительно ли там была необходимость в этом?
          • @aakkaakkaakk
            В основном изменение баланса у юзера, отображение нотификаций, запросы на вывод средств с аккаунта. В целом это было требованием бизнеса и убрать сабскрипшены возможности особо не было.
            • @gavrilovlog
              ну к сожалению да, есть некоторые нюансы, когда такая модель становится больше обременительной, чем каким-то улучшением, и работа архитектора как раз в том, что сопоставить все плюсы и минусы и прийти к какому-то компромиссу. Архитектура это всегда принятие компромиссов 🙂