Echtzeit-Kommunikation mit GraphQL I/O

Etablierte Anwendungsschnittstellen sind zeitgemäßen Anforderungen kaum noch gewachsen. Mit GraphQL steht allerdings eine veritable Sprache für Omnichannel- und Echtzeit-Kommunikation in den Startlöchern.

Sprachen  –  16 Kommentare
Echtzeit-Kommunikation mit GraphQL I/O

Im Zuge der Digitalisierung haben mehr und mehr Unternehmen verstanden, dass ein positives Kundenerlebnis ein entscheidender Vorteil im Wettbewerb ist. Wurde das Kundenerlebnis (User Experience) anfangs noch auf schicke Bedienoberflächen mit imponierenden Effekten reduziert, sind weitere Faktoren in den Mittelpunkt der Aufmerksamkeit gerückt. Mit dazu gehören eine Omnichannel-Strategie und Echtzeit-Aktualisierung der präsentierten Daten.

Sowohl Omnichannel-Strategie als auch Echtzeit-Aktualisierung stellen Architekten und Entwickler vor eine Hürde. Etablierte Anwendungsschnittstellen wie RPC, SOAP oder REST sind dafür entweder nicht geeignet oder erfordern einen hohen Entwicklungsaufwand. Abhilfe schafft das von Facebook stammende GraphQL in der Variante GraphQL I/O. GraphQL als Schnittstelle erfüllt alle Voraussetzungen des stark variierenden Datenbedarfs einer Omnichannel-Strategie – und GraphQL I/O ermöglicht die einfache Echtzeit-Aktualisierung der Daten auf Basis von GraphQL.

Was ist Echtzeit?

Echtzeit meint lediglich, dass ein System in der Lage ist, innerhalb eines zuvor als akzeptabel festgelegten Zeitrahmens auf ein bestimmtes Ereignis zu reagieren. Die Größe des Zeitrahmens hängt von verschiedenen Faktoren ab und kann wenige Mikrosekunden bis Stunden betragen.

Im Umfeld der digitalen Transformation zählt vornehmlich die User Experience, die deshalb entscheidend den Zeitrahmen für Echtzeit begrenzt. 0,1 Sekunden gelten als unmittelbare Reaktion und bilden den für Tastatur-, Maus- oder Touch-Eingaben relevanten Zeitrahmen. Verzögerungen bis eine Sekunde nehmen die Anwender bereits wahr, aber das Gefühl eines flüssigen Arbeitsablaufes bleibt bestehen. Noch als akzeptabel und interaktionsfähig gilt ein Zeitrahmen bis zu zehn Sekunden. Die Anwender können zwar weiterarbeiten und ihre Gedankengänge halten, die User Experience leidet aber bereits erheblich. Ab zehn Sekunden haben Anwender dann das Gefühl, aufgehalten zu werden und suchen sich womöglich alternative Beschäftigungen.

Die digitale Transformation hat einige entscheidende Paradigmenwechsel angestoßen. Unter anderem ist der Anwender jetzt der Ausgangspunkt aller Überlegungen zu Unternehmensstrategie und Ausgestaltung betrieblicher Informationssysteme geworden. Das ist daran zu erkennen, dass Unternehmen nicht mehr einfach festlegen können, auf welchen Wegen ihre Kunden und Anwender mit ihnen in Kontakt treten sollen. Stattdessen müssen sie ihren Kunden dorthin folgen, wo diese sich jetzt oder in Zukunft befinden.

Der Kontakt läuft dabei mittlerweile über viele Kanäle parallel, etwa online auf der Shopseite, offline im Ladengeschäft, über die Unternehmenswebseite, soziale Medien und viele mehr. Ziel muss sein, dass Kunden und Anwender die Kanäle auf möglichst vielen Geräteplattformen nutzen und nahtlos zwischen ihnen wechseln können, ohne den Wechsel zu bemerken. Der sie individuell umgebende Kontext aus Daten muss dazu über alle Kanäle hinweg konsistent sein. So ist sichergestellt, dass die Kunden weder mit lückenhaften noch mit widersprüchlichen Informationen konfrontiert werden oder dieselben Informationen mehrmals eingeben müssen. Diese Strategie der nahtlos verflochtenen, konsistenten Kanäle läuft unter der Bezeichnung Omnichannel (siehe Kasten).

Der feine Unterschied: Cross-Channel vs. Omnichannel

Mitunter fällt die Abgrenzung zwischen Cross-Channel und Omnichannel vage aus. Während Cross-Channel klar auf eine feste Auswahl verknüpfter Kanäle abzielt, bezieht sich Omnichannel auf alle existenten und noch kommenden Kanäle. Alle Kanäle sind bei Omnichannel so miteinander verknüpft, dass die Kunden nicht mehr merken, dass sie mit dem Unternehmen auf mehreren verschiedenen Kanälen in Kontakt stehen. Die verschiedenen Kanäle rücken in den Hintergrund, die Wahrnehmung des Unternehmens als Marke steigt.

Jeder Kanal stellt allerdings eigene Anforderungen an betriebliche Informationssysteme. Die Datenzugriffsmuster, die die Anforderungen beschreiben, hängen dabei nicht nur vom Kanal, sondern auch von der Rolle des Anwenders und natürlich der Geräteplattform ab. Hinzu kommt, dass je nach Plattform und Betriebssystem womöglich mehrere eigenständige Clients zu entwickeln sind, die wiederum individuelle Daten und Datensichten benötigen. Das erfordert eine hochgradig flexible Anwendungsschnittstelle, die sich einfach an die verschiedenen Datenzugriffsmuster anpassen lassen muss.

Dazu gesellt sich noch die Echtzeit-Aktualisierung von Daten, die ebenfalls ein positives Kundenerlebnis prägt und die Produktivität erheblich steigern kann. Nimmt ein Anwender relevante Änderungen an Daten vor, übermittelt der Client sie automatisch zum Server. Gleichzeitig überträgt der Server relevante Änderungen sofort an die betroffenen Clients. Dadurch spiegeln sich nicht nur die Änderungen des Anwenders auf allen seinen Kanälen und Geräten zeitnah wider, sondern auch solche, die von anderen Anwendern vorgenommen wurden. Im Rahmen betrieblicher Informationssysteme lassen sich somit Race Conditions und Inkonsistenzen verringern. Locking kann zudem ganz oder zumindest teilweise entfallen. Und nervige Systemmeldungen wie "Die Bearbeitung ist durch einen anderen Anwender blockiert!" gehören der Vergangenheit an.