Разные клиенты требуют различной логики взаимодействия с информацией. Сайт, soft для Айос или Андроид, а также умные часы – каждый из продуктов имеет свои требования к скорости, информационному объему и особенностям интерфейса.
Классический монолитный API пытается быть универсальным, но на практике это создает некоторые сложности. Веб-версии нужны подробные сведения для сортировки и фильтров, а мобильному софту достаточно минимального набора данных, чтобы экономить трафик.
Архитектура БФФ – это то, что позволяет создавать отдельную логику для каждого продукта, не нагружая основной программный интерфейс. Вместо одного общего endpoint, который пытается удовлетворить все запросы, формируются специализированные слои:
- для оптимальной работы веб-страниц;
- для мобильных девайсов;
- для носимых гаджетов.
Сведения часто приходят в неудобном виде: связные объекты надо отдельно запрашивать и объединять на клиенте. Паттерн решает эту задачу за вас.
Каждое приложение получает данные в виде, готовом для отображения. Вместо того чтобы загружать десятки полей и использовать лишь несколько, BFF возвращает только то, что реально нужно.
Если мобильное ПО обрабатывает тысячи запросов в секунду, шаблон можно писать на Go. Веб-версию, которую делает новичок, достаточно реализовать на Node.js. Архитектура не заставляет использовать одну технологию для всех клиентов.