advanced
Паттерн BFF
Проектируйте UI-specific server endpoints, агрегирующие сервисы и сохраняющие границы владения и безопасности.
Backend-for-Frontend формирует API под конкретный UI: агрегирует сервисы, скрывает внутренние URL, enforce session auth и отдаёт view models вместо сырых domain entities.
В Next.js route handlers или server actions часто играют BFF, когда команда владеет UI и агрегацией.
Browser → Next route handler → internal services A + B → UI-shaped JSON
На интервью: почему one-to-one дублирование endpoints слабо и что в BFF, а что в core services.
Типовые ошибки: бизнес-правила и в BFF, и в сервисах; god handlers с domain logic; дословная утечка ошибок сервисов.
Компромисс: скорость доставки для одного клиента против ещё одного tier сервисов.
Чеклист:
- Агрегация под UI, не ради обёртки.
- Инварианты домена в core services.
- Стабильные error shapes для UI.
- Auth на границе BFF.