advanced
BFF pattern
Используйте backend-for-frontend, чтобы shape APIs вокруг client workflows, контролируя duplication, caching, auth и ownership boundaries.
Backend-for-Frontend (BFF) подгоняет API под конкретные client workflows — mobile, web, partner — агрегируя downstream services, формируя payload и client-specific auth или caching. Меньше over-fetching и chatty clients, но риск дублирования без governance, если каждый экран получает свой BFF endpoint.
На интервью: BFF vs generic API gateway или GraphQL. Ownership — frontend, platform или shared — и границы caching.
Типовые ошибки: BFF как второй монолит; дублирование business rules из core services; нет contract tests между BFF и clients.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- BFF под один client experience.
- Domain rules остаются в core services.
- Aggregation с timeouts и стратегией partial failure.
- Versioned contracts с consumer fixtures в тестах.