Backend-for-Frontend (BFF) pattern: one per client or shared?
Rina Park
·751 views
we're discussing implementing a Backend-for-Frontend (BFF) pattern to better serve our different client applications (web, iOS, Android). currently, all clients hit the same set of core APIs, and they often get bloated responses with data they don't need, or they have to make multiple calls to aggregate data for a single screen.
the debate is whether to have a separate BFF per client type (e.g., one for web, one for mobile) or a single shared BFF that uses flags or request headers to tailor responses. a dedicated BFF offers maximum client-specific optimization but increases operational overhead. a shared BFF is simpler to deploy but might still have some compromise. also, does GraphQL effectively replace the need for multiple BFFs, allowing clients to just declare what they need? what have people found works best in practice for large-scale applications?
0 comments