How We Actually Implemented BFF in Practice

The article explains why the backend team built three BFF services without serverless or GraphQL, basing the decision on business logic, team expertise, and organizational structure, and shows how the architecture aligns with different e‑commerce lines.

samdeepthink
samdeepthink
samdeepthink
How We Actually Implemented BFF in Practice

Implementation Overview

We implemented BFF (Backend‑For‑Frontend) as a set of three services, all built by the backend development team.

All BFFs were implemented by the backend team.

Three separate BFF services were created.

Serverless platforms and GraphQL were not adopted.

Any architecture must fit the team’s reality and the company’s business; blindly following standards is discouraged.

Why the backend team built the BFF layer

The BFF layer was treated as an aggregation and orchestration tier with strong business characteristics, its own cache and storage. Those responsibilities were judged unsuitable for the frontend team.

Traditional servers were chosen over serverless because the team lacked practical serverless experience and could not guarantee the required operational robustness.

Why three BFF services

The organization was divided into three business lines, each with its own front‑end, back‑end, testing, and product teams:

Selection line – shopping‑cart, product, menu, etc.

Middle‑back line – order, payment, fulfillment.

User‑marketing line – user, membership, marketing.

When a large requirement spans multiple lines, each line can coordinate internally, improving efficiency. Consequently we deployed three BFF services:

Selection‑line BFF

Middle‑back‑line BFF

User‑marketing‑line BFF

For most pages the front‑end calls its own BFF directly; only a few highly complex pages require additional front‑end aggregation, which is considered acceptable. A single massive BFF was avoided because coarse‑grained endpoints increase risk; multiple finer‑grained calls are safer.

Resulting Architecture

The overall architecture is illustrated below:

Service Mapping

Selection line : Shopping‑cart service, Product service, Menu service

User‑marketing line : Marketing system, User system

Middle‑back line : Order system, Payment system, Settlement service

Key Takeaways

There is no single standard for BFF implementation. The decision of who builds the BFF, whether to use servers or serverless, and how many BFFs to create depends on the weight of business logic, team expertise, and organizational constraints rather than pure technical superiority.

Debates such as GraphQL vs. REST, serverless vs. traditional deployment, or Node.js vs. Java are about tooling, not the core problem. The BFF’s purpose is to assemble data after micro‑service decomposition, and the implementation should be selected to fit the team’s reality and ensure stable operation.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

e-commercearchitectureMicroservicesteam organizationBFFBackend For Frontend
samdeepthink
Written by

samdeepthink

Knowledge Planet: Old Dock's Tech Chronicles Zhihu: SamDeepThinking A technical manager who still codes heavily on the front line. From junior developer to tech lead, then tech manager, now leading the whole front‑ and back‑end development team—leveling up along the way. I have some insights on programming, career development, and tech management.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.