私の理解したBFF

BFFとは Backend for frontend の略。

FrontendのためのBackend。

それはなんでしょうか?

背景として、Frontendは、API呼び出しをして、もらったデータをレンダリングするのが主になっているような気がそこはかとなくしています。

このような状況で、Frontendというのは、いろんなドメインにまたがる情報を表示する必要があったりします。

するとどうなるか、大量のAPI呼び出しが必要になります。

リッチな環境であれば、API呼び出し回数が多少多くても問題ありませんが、リッチでない環境ですと、API呼び出しにかかるコスト(時間的コスト)が大きくなってきます。

すると、API呼び出しを減らしたい。でもいろんなドメインにまたがるデータも欲しい。という要求がでてきます。

そこに登場するのがBFFです。

BFFでは、Frontendのユースケースに依存したAPIを持ち、Frontendからのリクエストに応じて時には複数のBackendに要求をだし、それらをFrontendが望む形に組みたて、返却します。

安定したドメインで作られるバックエンドAPIに対し、BFFでは、変更の多いFrontendのユースケースによってAPIが用意されます。 この点が、BFFはフロントエンドチームが作った方が良いと言われる所以かなと思っています。