Die Bedeutung von Microservices und GraphQL
Während Microservices in Deutschland erst allmählich in Mode kommen, handelt es sich international gesehen bereits um einen alten Hut, der sich über die Jahre aber bereits unzählige Male bewiesen hat. Mit GraphQL betritt nun eine neue Technologie das Feld, mit welcher die API Anfragen für Microservices sehr viel schneller und effizienter umgesetzt werden können. Darum empfiehlt es sich auf jeden Fall sich mit der konkreten Funktionsweise von GraphQL auseinander zu setzen, wenn man das nächste auf Microservices fußende E-Commerce Projekt in Angriff nehmen möchte. Da im E-Commerce komplexe Datenstrukturen üblich sind, sehen wir hier ein besonders wichtiges Einsatzszenario von GraphQL.
Was sind Microservices und GraphQL?
Bei einer Microservices-Software Architektur besteht eine Software aus sehr vielen kleinen Bausteinen, die baulich voneinander getrennt und theoretisch unabhängig voneinander nutzbar sind. Statt also in einem Webshop beispielsweise Produktkatalog, Nutzerverwaltung, Produktsuche etc. in ein großes Programm zu packen, wird mit Microservices simpel ausgedrückt jede relevante Funktion als eigene kleine Software geschrieben. Der Vorteil besteht nun darin, dass inkrementell und isoliert kleine Änderungen und Verbesserungen am Produkt von unabhängigen Teams sicher und schnell vorgenommen werden können – darum setzen Unternehmen wie Netflix oder Spotify schon seit Jahren auf Microservices. Auch beim E-Commerce Vorreiter REWE Digital in Deutschland weiß man die Vorteile dieser Architektur sehr zu schätzen.
Microservices (also z.B. Produktverwaltung und Suche) kommunizieren in dieser Architektur über ihre APIs miteinander. Dafür nimmt man heute noch gerne REST-APIs, was zu einer ziemlich aufwändigen Implementierung dieser Microservices führt, da oftmals über viele verschiedene Ressourcen / „Datenbanktabellen“ mit Referenzierungen / „Querverweisen“ Informationen beschafft werden müssen.
Was ist GraphQL? Welche Vorteile bringt GraphQL?
Mit GraphQL (ursprünglich entwickelt von Facebook) wird o.g Kommunikationsprozess zwischen den einzelnen APIs unglaublich vereinfacht – und zwar soweit, dass es oftmals kaum Mehraufwand bedeutet statt einem Monolithen eine auf Microservices basierende Architektur zu wählen. Wird ein GraphQL-Server verwendet, kann man als Entwickler einfach sämtlichen gewünschten Felder in eine einzige Anfrage schreiben, und erhält als Antwort punktgenau jene Informationen die man benötigt – und zwar in einem zeitgemäßen JSON-Format.
Bei einer REST-API werden hingegen nacheinander oft zahlreiche Anfragen gestellt und manuell vom Entwickler in Verbindung gebracht. Beispielsweise muss man erst in der Produkttabelle nach einer ProduktID suchen, um dann in einer zweiten Tabelle den Netto-Preis für diese ProduktID nachzuschlagen. In einer dritten und vierten Tabelle finden sich dann erst der jeweilige Steuersatz sowie das erste Produktbild. In der fünften Tabelle erfährt man welche weiteren Produktbilder es gibt und in der sechsten Tabelle erhält man eine Kurzbeschreibung mit Referenzierung auf die Sprache in einer siebten Tabelle. Das Spiel könnte man noch lange so fortführen. Sämtliche diese Anfragen werden bei GraphQL in eine einzige Anfrage zusammengefasst. Damit spart man als Entwickler nicht nur Zeit und Kosten, sondern belastet den Server auch oftmals essentiell weniger. Besonders im E-Commerce sind komplexe REST-API Strukturen üblich, darum kann hier GraphQL besonders glänzen.
Welche Shopsysteme nutzen Microservices?
Momentan sind quasi alle in Deutschland etablierten Shopsysteme als Monolithen gebaut. Shopify ist eine SaaS Lösung und daher ist es nicht relevant wie Shopify die Plattform implementiert hat, durch die hervorragende API, die es bei Shopify mittlerweile bereits als GraphQL Variante gibt, kann man aber als Entwickler bei Shopify-Projekten selbst einen Microservice Ansatz hervorragend implementieren. Damit baut Shopify unserer Meinung nach abermals seinen technischen Vorsprung gegenüber anderen Systemen erheblich aus.
Microservices mit GraphQL – Noch Fragen?
Die großen Potenziale von Microservices mit GraphQL im E-Commerce klingen für Sie interessant und Sie möchten mit Ihrem digitalen Vertrieb von den neuesten Technologien profitieren? Dann rufen Sie uns an und sprechen Sie mit einem technischen Projektmanager unverbindlich, kostenlos und auf Augenhöhe über Ihre Einsatzszenarien für diese und andere Technologien: 0208 778 997 90