merpay Frontend
における BFF
UIT#3 The “Backends for Frontends” sharing
Shogo Sensui (@1000ch)
Shogo Sensui
(@1000ch)
Software Engineer
Merpay, Inc / Mercari, Inc
「信用を創造して、なめらかな社会を創る」
メルペイ事業における Web
@1000ch 的なモチベーション
メルペイ Web の技術スタック
Web 周辺アーキテクチャの概観
User Land
Microservices Land on GCP
Browser
SSR Server
API Server
http
Isomorphic App
そもそも BFF とは
“Single-purpose Edge Services for UIs
and external parties”
The General-Purpose API Backend
Microservices Land
User Land
image via: Sam Newman - Backends For Frontends
広がる BFF の解釈
>「これらの状況を鑑みて、フロントエンド側にクライアントごとの要求に応えるためのサーバを配置してバックエンドのAPIサーバとの橋渡し役とするアーキテクチャが開発されるようになりました。BFFによってHTMLを構築したり、リクエストの数を少なくしたりできるなどの利点があるからです。」って会長が言ってた
The General-Purpose API Backend
Microservices Land
User Land
HTML を生成させると色々都合が良さそう
image via: Sam Newman - Backends For Frontends
メルペイにおける Backends For Frontends
User Land
Microservices Land on GCP
Browser
SSR Server
API Server
http
Isomorphic App
メルペイにおける Backends For Frontends
User Land
Microservices Land on GCP
SSR Server
API Server
広義(?)の BFF
本来(?)の BFF だけどBackends for BFF 状態
今日だけ BFF と Backends for BFF を区別します
User Land
Microservices Land on GCP
SSR Server
API Server
BFF
Backends for BFF
違う Backends For Frontends 案(ボツ案)
User Land
Microservices Land on GCP
SSR Server
http
Single Purpose ではなくなってしまっている
http
http
Browser
Node.js が API サーバーを兼ねてはまずい?
BFF もとい Backend for BFF がやっていること
おしまい