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 в тестах.