Tutorials Design Patterns in C#
Backend for Frontend (BFF) Pattern — Complete Guide
Backend for Frontend (BFF) Pattern — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of Design Patterns in C# on Toolliyo Academy.
On this page
Design Patterns in C# · Lesson 46 of 69
Backend for Frontend (BFF) Pattern
GoF Core ✓ → Enterprise ✓ → Cloud & Craft
Cloud & Craft · 3 — Microservices & interviews · ~6 min · Module 6: Microservices & Cloud Patterns
What is this?
BFF is a per-channel backend that aggregates and shapes APIs for mobile, web, or partners.
Why should you care?
ShopNest mobile home needs one fat call; web can stay thinner — without forcing every microservice to know mobile quirks.
See it live — copy this example
Paste into a C# console or class library project and run dotnet run.
public sealed class MobileHomeBff
{
public object GetHome()
{
// aggregate catalog + banners + cart count
return new { banners = 2, cartCount = 1, topSkus = new[] { "HD-100" } };
}
}
Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(new MobileHomeBff().GetHome()));
Run Example »
Edit the code below and click Run to see the result in Toolliyo’s live editor.
What happened?
- BFF aggregates for a client type.
- Domain services remain the source of truth.
- Do not hide a permanent 10-service orchestration nightmare without budgets.
Practice next
- Sketch ShopNest mobile /m/home.
- List services it calls.
- Cache safe GET aggregates briefly.
- Add web BFF with fewer fields.
- Measure fan-out latency.
Remember
Channel-specific façade. Aggregate carefully. Domains keep rules.
ShopNest mobile home BFF
App uses one aggregated home call.
Outcome: Fewer round trips on slow networks.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!