BFF Pattern: ein separates Backend für jeden Client-Typ. Web, Mobile, IoT — jeder hat andere Anforderungen.
Das Problem mit einer einzigen API¶
Mobile benötigt andere Daten als Web. Eine API = Over-Fetching, Under-Fetching, Kompromisse.
Architektur¶
Web UI → Web BFF → [Order Service, User Service, Analytics]
Mobile → Mobile BFF → [Order Service, User Service]
IoT → IoT BFF → [Telemetry Service]
Beispiel¶
// Web BFF — vollständige Daten
app.get('/api/dashboard', async (req, res) => {
const [orders, stats, notifs] = await Promise.all([
orderService.getRecent(20),
analyticsService.getDashboard(),
notificationService.getUnread()
]);
res.json({ orders, stats, notifs });
});
// Mobile BFF — optimierte Antwort
app.get('/api/dashboard', async (req, res) => {
const orders = await orderService.getRecent(5);
res.json({ orders: orders.map(o => ({ id: o.id, status: o.status })) });
});
Zusammenfassung¶
BFF ist die richtige Wahl bei mehreren Client-Typen. Jedes BFF sollte idealerweise dem Team gehören, das das jeweilige Frontend entwickelt.
Brauchen Sie Hilfe bei der Implementierung?¶
Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.