June 12, 2020

Lemmid Store mit Küchen verknüpfen

Integration mit externen Systemen, die Sie nicht kontrollieren

Im Rahmen der Entwicklung meiner Essensbestell-App musste ich eine zuverlässige Methode entwerfen, um die App mit externen Systemen zu verbinden. Diese externen Systeme liegen außerhalb meiner direkten Kontrolle und umfassen verschiedene Kassen, Küchenmanagementsysteme und Bondrucker. Lesen Sie weiter, um mehr über das Design für das Unbekannte und Unzuverlässige zu erfahren.

Bestell-App für Essen

Die App, die ich entwickle, ist Lemmid Store. Es ist eine benutzerfreundliche App, mit der man Essen zum Mitnehmen bestellen (und bezahlen) kann. Sie finden alle Beiträge zu Lemmid Store hier.

Lemmid Store - eine App zum Bestellen von Essen zum Mitnehmen
Lemmid Store - eine App zum Bestellen von Essen zum Mitnehmen

Externe Systeme

Die Notwendigkeit, sich mit externen Systemen zu verbinden, ergibt sich aus dem Wunsch, die Bestell-App in die Geschäftsprozesse des Essenslieferdienstes zu integrieren. Denken Sie an Dinge wie:

Gedrucktes Ticket - über eine externe Verbindung - einschließlich detaillierter Bestelldaten wie Produktmodifikatoren (Kundenauswahl pro Produkt)
Gedrucktes Ticket - über eine externe Verbindung - einschließlich detaillierter Bestelldaten wie Produktmodifikatoren (Kundenauswahl pro Produkt)

Herausforderungen bei der Verbindung mit externen Systemen

Sie merken es vielleicht nicht, aber die Verbindung mit externen Systemen kann knifflig sein. Wenn Sie sich die Bestell-App als eine Art "Motor" (wie in Ihrem Auto) vorstellen, möchten Sie diesen Motor im Wesentlichen mit externen Teilen integrieren. Wie Sie sich vorstellen können, sind nicht alle Teile gleichermaßen geeignet, um unter die sprichwörtliche Motorhaube zu passen. Um die Sache noch schwieriger zu machen: Sie wissen nicht genau, wie zuverlässig die externen Teile sind. Sie müssen Ihre Integration so gestalten, dass verschiedene externe Teile einfach angeschlossen werden können und die Leistung unabhängig von der Zuverlässigkeit dieser externen Teile ist.

Die Integration externer Systeme in Ihre App ist wie die Anpassung von Drittanbieterteilen an einen Motor: Sie müssen deren Passform und Zuverlässigkeit sorgfältig prüfen. [image]
Die Integration externer Systeme in Ihre App ist wie die Anpassung von Drittanbieterteilen an einen Motor: Sie müssen deren Passform und Zuverlässigkeit sorgfältig prüfen. [image]

Wie bei einem Verbrennungsmotor müssen Sie bei der Integration Ihrer Software mit externen Systemen die Passform und Zuverlässigkeit berücksichtigen. Sie können nicht davon ausgehen, dass externe Software:

Um für diese eher düstere Sicht auf externe Verbindungen zu planen, hielt ich es für eine gute Idee, den Haupt-Backend-Server meiner Bestell-App die Verantwortung für die Verbindung mit externen Systemen an einen speziell entwickelten "Connector-Server" abzugeben. Der Connector-Server würde sich dann unabhängig mit dem externen System verbinden. Auf diese Weise kommuniziert der Hauptserver nur mit "First-Party"-Teilen und -Systemen, wodurch das Risiko von Fehlanpassungen und möglichen Ausfallzeiten minimiert wird.

Trennung des Haupt-Backend-Servers von den externen Systemen durch Einführung eines speziell entwickelten
Trennung des Haupt-Backend-Servers von den externen Systemen durch Einführung eines speziell entwickelten "Connector-Servers"

In der Praxis bedeutet dies, dass der "Connector-Server" tatsächlich eine andere Maschine ist, auf der ein eigener Software-Stack läuft. Diese Segmentierung bietet einige wichtige Vorteile:

Schlussfolgerung

So verlockend es auch ist, einfach neue und schicke Teile an Ihre App anzuschrauben, müssen Sie Ihr Setup sorgfältig prüfen, um sicherzustellen, dass es zuverlässig funktioniert.

Die Entwicklung von Backend-Server-Software für die Verbindung mit externen APIs ist eine Herausforderung. Sie müssen auf das Beste hoffen, aber für das Schlimmste planen!