【ばっくえんどふぉーふろんとえんど】
Backend for Frontend(BFF) とは?
最終更新:
💡 フロントエンドの用途に合わせた、専用の調整役
特定のフロントエンドの利用体験に合わせて、専用のバックエンド層を設ける設計パターン。必要なデータの集約や加工を行い、Webやモバイルなどの用途に合うAPIを提供する。
📌 このページのポイント
必要な機能やデータが似ていれば、共通のAPIでも対応できるよ。BFFは、たとえばWebには詳しい一覧、スマホには必要な項目を絞った一覧を返すように、異なる利用体験へ合わせるための層なんだ。
BFFではどんな処理をするの?
複数のサービスから情報を集め、画面に必要な形へ整えるよ。商品名・価格・在庫を集約する、といった例だね。フロントエンド側の呼び出しをまとめられるけれど、全体の通信量や応答時間が必ず減るとは限らない。追加の通信や障害時の扱いも設計するんだ。
APIゲートウェイとは違うの?
必須ではないよ。似た利用体験ならモバイル用BFFを共有する例もある。必要な機能や担当チームに合わせて境界を決めよう。共通の業務処理は下位のサービスへ置く方法もあるけれど、共有のライブラリなどを使うときは、変更がほかのBFFへどう影響するかも考えるんだ。
どんなプロジェクトで採用すべき?
📖 おまけ:英語の意味
「Backend for Frontend」 = フロントエンドのためのバックエンド
💬 Sam Newmanの2015年の記事は、この呼び名をPhil Calçadoによるものとして紹介しているよ