Das Backend für ein führendes mobiles Einkaufserlebnis antreiben

Architekturübersicht

🔗 Backend-for-Frontend (BFF) Kern Im Herzen der Lösung befand sich ein NestJS GraphQL BFF, das als einziges Gateway für die mobile App fungierte. Es aggregierte Daten aus mehreren Backend-Diensten, wendete Geschäftslogik an und lieferte nur die erforderlichen Informationen zurück -- was die Payload-Größe reduzierte und die Performance für mobile Nutzer optimierte.

Geschwindigkeit durch Caching Eine Redis-Caching-Ebene beschleunigte häufige Abfragen, verkürzte Antwortzeiten und verringerte die Last auf Backend-Diensten.

OnApp_detailed_img-1_DE.webp image

🔍 Intelligente Sucherfahrung Algolia lieferte sofortige, relevante Suchergebnisse und sorgte so für einen reibungslosen und reaktionsschnellen Produktentdeckungsprozess.

📊 Proaktives Monitoring Wir integrierten New Relic und Amplitude für tiefgehendes Leistungs- und Nutzungsmonitoring, um potenzielle Probleme schnell zu erkennen und zu beheben, bevor sie Endnutzer beeinträchtigten.

OnApp_fig_2_DE.webp image

🤝 Enge Zusammenarbeit mit den Frontend-Teams Während das mobile Frontend separat in Flutter entwickelt wurde, arbeiteten wir eng mit den Entwicklern des Kunden zusammen, um Integrationsherausforderungen zu lösen, API-Antworten zu optimieren und die Backend-Kompatibilität mit den sich entwickelnden Frontend-Anforderungen sicherzustellen.

Technologie-Stack

Backend

  • NestJS (TypeScript) -- GraphQL API (BFF-Schicht)

  • Redis -- Hochgeschwindigkeits-Caching-Ebene

  • Kubernetes -- Container-Orchestrierung für skalierbare Deployments

  • AWS -- Hosting-, Speicher- und Infrastrukturdienste

Integrationen

  • Algolia -- Sofortige, relevante Suchfunktion

  • Amplitude & New Relic -- Echtzeit-Monitoring und Performance-Tracking

  • Firebase -- Benachrichtigungen und Echtzeit-Updates

  • E-Commerce Services -- Produkt-, Bestell- und Benutzerverwaltung auf Basis des bestehenden Web-Backends, optimiert durch das BFF für Performance und mobile Nutzung.

Warum dieser Stack und diese Architektur

  • NestJS GraphQL API → Maßgeschneiderte, mobil-optimierte Datenbereitstellung mit flexiblen Abfragemöglichkeiten, um genau die benötigten Felder für jede Ansicht abzurufen, Überfetching zu vermeiden und die Performance zu steigern.

  • BFF-Muster → Klare Trennung zwischen den Anforderungen der mobilen App und der Backend-Komplexität, wodurch zukünftige Updates einfacher werden.

  • Redis-Caching → Schnellere API-Antworten und geringere Backend-Last durch Speicherung häufig abgefragter Produkte sowie relativ statischer Daten (z. B. Übersetzungen, allgemeine Shop-Informationen).

  • Algolia Search → Eine gehostete Search-as-a-Service-Plattform, die durch fortschrittliche Indexierungs- und Ranking-Algorithmen Suchergebnisse in Subsekunden-Latenz und mit hoher Relevanz liefert. Im Anwendungsfall unseres Shops ermöglicht Algolia eine sofortige Produktsuche mit Tippfehler-Toleranz, facettierter Filterung und personalisiertem Ranking. So können Kunden Produkte schnell finden, selbst bei unvollständigen oder ungenauen Suchanfragen. Dies verbessert das Einkaufserlebnis erheblich und reduziert Reibungsverluste bei der Produktsuche.

  • New Relic + Amplitude → Gemeinsam bieten diese Tools vollständige Transparenz in Bezug auf Leistung, Nutzungsmuster und Systemgesundheit. New Relic ermöglicht die Echtzeitüberwachung der Backend-Performance, Fehlerverfolgung und Infrastrukturzustand, während Amplitude tiefe Einblicke in das Nutzerverhalten, die Feature-Adoption und Nutzerflüsse liefert. Diese Kombination erlaubt es uns, Probleme schnell zu erkennen und zu beheben, die Systemleistung zu optimieren und die Benutzererfahrung anhand klarer Verhaltensmuster sowie der gemessenen Erfolge neuer Funktionen gezielt zu verbessern.

  • AWS → AWS stellt eine hochverfügbare, weltweit verteilte Infrastruktur mit einer leistungsstarken Suite an Cloud-Diensten, Sicherheitsfunktionen und Monitoring-Tools bereit, wodurch unser Backend zuverlässig und skalierbar auf wachsende Nachfrage reagieren kann.

  • Kubernetes → Fügt eine sichere Orchestrierungsschicht hinzu, die die Bereitstellung, Skalierung und Verwaltung containerisierter Dienste automatisiert. Eingebaute Gesundheitsprüfungen, Selbstheilungsfunktionen und Diagnosetools ermöglichen es uns, die Systemstabilität aufrechtzuerhalten, Probleme schnell zu lösen und Ressourcen dynamisch für maximale Leistung anzupassen.

Überwachung & Stabilität -- So halten wir das BFF absolut stabil

Echtzeit-Leistungsüberwachung mit New Relic Wir haben New Relic integriert, um die API-Leistung, Antwortzeiten und Fehlerraten kontinuierlich zu überwachen. Diese Transparenz ermöglichte es uns, Probleme zu erkennen, bevor sie Endbenutzer beeinträchtigten, und Engpässe schnell zu isolieren.

Datenschutz auf allen Ebenen Alle Monitoring- und Logging-Pipelines wurden mit Datenverschleierung konzipiert, um sicherzustellen, dass keine sensiblen Kundeninformationen oder personenbezogenen Daten jemals offengelegt werden.

Nutzungs- & Traffic-Analysen Wir verfolgten Durchsatz, aktive Benutzerzahlen und Anfragenvolumen, segmentiert nach Zeitzone, Gerätetyp (iOS/Android) und Region. Diese Metriken lieferten entscheidende Einblicke in das Nutzerverhalten und halfen bei der Optimierung von Skalierungsstrategien.

Incident Response & Benachrichtigungen Individuelle Warnmeldungen und Slack-Channel-Integrationen stellten sicher, dass die richtigen Personen bei Vorfällen sofort benachrichtigt wurden, um Reaktionszeiten zu verkürzen.

Incident-Playbooks & Post-Mortems Ein detailliertes Incident-Playbook leitete das Team an, welche Maßnahmen bei jedem Problemtyp zu ergreifen sind. Nach jedem größeren Vorfall führten wir Post-Mortems durch, um Verbesserungen umzusetzen und das System zu stärken.

Automatisierte End-to-End-Tests Wir führten stündliche E2E-Tests per Cronjob durch, um zu überprüfen, ob sowohl das BFF als auch alle verbundenen externen Dienste ordnungsgemäß funktionierten.

Qualitätssicherungs-Gates in der Pipeline Die CI/CD-Pipelines umfassten Unit-Tests, Integrationstests, E2E-Tests und SonarCloud-Analysen, um Codequalität zu gewährleisten und Regressionen zu verhindern.

Vermeidung von Breaking Changes in GraphQL Wir implementierten einen GraphQL-Schema-Checker in der Pipeline, um Breaking Changes vor der Bereitstellung zu erkennen und so die Abwärtskompatibilität für alle genutzten App-Versionen sicherzustellen.

Warum der BFF-Ansatz entscheidend war

🛡️ Schutz vor Frontend-Risiken

Eine der größten operativen Herausforderungen bei der Entwicklung mobiler Apps ist der lange Genehmigungsprozess für die Veröffentlichung von Updates im iOS App Store und Google Play Store. In diesem Projekt war ein Hauptgrund für die Einführung einer Backend-for-Frontend-(BFF)-Schicht -- anstatt denselben Backend-Server wie die Einzelhandelswebsite zu verwenden -- das Verhindern mobilspezifischer Abhängigkeiten von instabilen oder experimentellen Frontend-Implementierungen der Website. Jeder Frontend-Fehler, der in die App gelangt wäre, hätte aufgrund der Verzögerung beim Einspielen von Fixes über den App-Store-Genehmigungsprozess zu erheblichen Ausfallzeiten oder Benutzerfrustration führen können. Das BFF fungierte als Sicherheits-Puffer und stellte sicher, dass nur stabile, mobiloptimierte Daten an die App geliefert wurden.

🔄 Abwärtskompatibilität ohne Reibungsverluste

Ein weiterer großer Vorteil war die Versionskompatibilität. Im Gegensatz zu Webanwendungen, bei denen Updates sofort verfügbar sind, können mobile Nutzer ältere Versionen der App über Wochen oder Monate weiter nutzen. Sie zu zwingen, jede Sprint-Version zu aktualisieren, hätte unnötige Reibung erzeugt. Das BFF ermöglichte es uns, die Abwärtskompatibilität mit älteren App-Versionen beizubehalten, indem Dienste dynamisch angepasst wurden -- und so eine reibungslose Benutzererfahrung zu gewährleisten, ohne häufige, störende Updates zu erzwingen

Feature-Highlights

  • Optimierte mobile Datenbereitstellung -- Backend speziell für mobile Geräte optimiert, um Payloads zu minimieren und Geschwindigkeit zu maximieren.

  • Hochgeschwindigkeitssuche -- Algolia-Integration für sofortige Produktsuche.

  • Performance-orientierte Architektur -- Redis-Caching und Kubernetes-Orchestrierung für Stabilität und Skalierbarkeit.

  • Nahtlose E-Commerce-Integration -- Anbindung an bestehende Produkt-, Lager- und Bestellsysteme.

  • Zusammenarbeit zwischen Backend und Frontend -- Laufende Unterstützung und Bugfixes für eine reibungslose Integration mit der Flutter-App.

Herausforderungen & Erkenntnisse

  • Integrationskomplexität -- Die Koordination zwischen Backend und einem externen Frontend-Team erforderte ständige Kommunikation und schnelle Iterationen.

  • Enge Zeitpläne -- Das Design, die Implementierung und die Optimierung des BFF innerhalb eines kurzen Lieferfensters erforderten strikte Priorisierung.

  • Skalierbare Grundlage -- Aufbau des Backends für weltweiten Traffic bei gleichzeitiger Flexibilität für zukünftige Funktionen.

  • Erfolge bei der Leistungsüberwachung -- Die frühe Einführung von New Relic ermöglichte es uns, Engpässe zu erkennen und zu beheben, bevor sie Benutzer beeinträchtigten.

Brauchst du ein robustes, skalierbares Backend, um deine mobile oder Webanwendung zu betreiben?

Lass uns darüber sprechen, wie unser Team eine Full-Stack-Lösung entwerfen und liefern kann, die genau auf deine Geschäftsziele zugeschnitten ist.

Kontaktiere uns
August-Bebel-Str. 9, 72072, Tübingen.
+49 1638 119175