Что имеется ввиду под BFF(Backend For Frontend)
👁 453💬 9
Идея BFF основана на паттерне Gateway и имеет ряд преимуществ:
1. Общие шаблоны на клиенте и сервере (например JSX)
2. Единый язык на клиенте и промежуточном сервере BFF.
3. Высокая скорость ответа под нагрузкой.
4. Предварительная обработка данных
Общие шаблоны важны, поскольку это ускоряет разработку и облегчает поддержку клиентской части приложения, отсюда и единый язык фронта и бэка. А высокая скорость ответ достигается за счет кэширования частых запросов.
Четвертый пункт является наиболее существенным, так как позволяет обработать и подготовить формат ответа на стороне сервера. Таким образом, фронт будет получать данные в более удобном виде для их использования.
В своей карьере я часто реализую паттерн Gateway, даже слишком 🙂 А BFF кажется редким введением в современных веб приложениях.
Что думаете про BFF, на сколько удобным кажется и стоит ли использовать? (пишите в комментариях)
Наш чат: @kyb_chat
@knowyourbackend
4
Комментарии · 9
- @lemniscaperСразу оговорюсь, что я не бэкендер А если прокси сервер это все равно сервер, то это не означает, что он тоже отжирает ресурсы? Стоит ли удобство фронтендеров этих ресурсов? И насколько проста реализация? Мы просто отдельне урлы форвардим на конкретные реализации? Это средствами nginxa?
- gateway скорее не целый сервер, а тоже микросервис. Какие именно ресурсы ты имеешь ввиду? Ресурсы сервера или затраты человекачасов?
- @lemniscaperСервера
- @aakkaakkaakkБыл ли опыт настройки веб-сокетов или сабскрипшинов (если говорим про graphql) через gateway?
- да и это скорее тема отдельного поста, про микросервисную архитектуру.
- @aakkaakkaakkБыло бы очень интересно узнать про эту тему на основе вашего опыта. Был опыт настройки bff для фронта, но сабскрипшены так и не удалось зафорвардить через бфф, клиент работает напрямую с хасурой касаемо сабскрибшнов, все остальное через bff.
- А для каких задач использовали подписки? Что за сервис? Действительно ли там была необходимость в этом?
- @aakkaakkaakkВ основном изменение баланса у юзера, отображение нотификаций, запросы на вывод средств с аккаунта. В целом это было требованием бизнеса и убрать сабскрипшены возможности особо не было.
- ну к сожалению да, есть некоторые нюансы, когда такая модель становится больше обременительной, чем каким-то улучшением, и работа архитектора как раз в том, что сопоставить все плюсы и минусы и прийти к какому-то компромиссу. Архитектура это всегда принятие компромиссов 🙂