GraphQL: Netflix gibt sein Domain Graph Service-Framework als Open Source frei
Das auf Spring Boot aufsetzende DGS-Framework soll die Implementierung von GraphQL-Services vereinfachen und steht nun auch der Community offen.
In einem aktuellen Beitrag auf dem Netflix TechBlog hat das Unternehmen bekannt gegeben, sein Domain Graph Service-(DGS)-Framework als Open Source freizugeben und es damit der Java- und GraphQL-Community zur Verfügung zu stellen. Netflix hatte sich erst 2019 entschlossen, eine föderierte GraphQL-Architektur einzuführen, die sich in das bestehende System für Logging, Tracing und weitere Metriken integrieren sollte.
Das daraus hervorgegangene DGS-Framework setzt auf Netflix' Spring-Boot-basierter Backend-Infrastruktur und der graphql-java
-Library auf. Es war ursprünglich nur für interne Zwecke bei Netflix gedacht und hat sich offenbar inzwischen auch im Produktivbetrieb bewährt. Sein modularer Aufbau beschränke den Einsatz des DGS-Frameworks aber nicht allein auf die Netflix-Architektur, sondern mache es auch darüber hinaus sinnvoll nutzbar – insbesondere im Hinblick darauf, Entwicklerinnen und Entwicklern die Implementierung unabhängiger sowie föderierter GraphQL-Services zu erleichtern.
Mit GraphQL in die Open Source Community
Die auf Facebook zurückgehende API-Abfragesprache GraphQL ist seit 2015 ein Open-Source-Projekt, das sich seither wachsender Beliebtheit in Microservice-Architekturen und für Serverless-Anwendungen erfreut. Unter dem Dach der Linux Foundation soll die Abfragesprache der Community künftig eine herstellerneutrale Heimat bieten. Als Alternative zum Programmierparadigma REST (Representational State Transfer) setzt GraphQL auf Abfragen in JSON-ähnlicher Form, die weitestgehend ohne unnötige Server-Roundtrips abgewickelt werden. Die GraphQL API wird außerdem durch ein Schema repräsentiert, das die Form von Abfrage- und Mutationsoperationen zusammen mit ihren zugehörigen Typen und Feldern beschreibt.
Verglichen mit REST sei GraphQL nach Einschätzung der Netflix-Entwickler dadurch nicht nur flexibler, sondern auch leistungsfähiger. So haben Anwender die Wahl, ein passendes API-Schema entweder vorab mit der GraphQL Schema Language als Datei zu erstellen oder über Codedefinitionen zur Laufzeit zu erzeugen. Das DGS-Framework unterstützt beide Vorgehensweisen, Netflix präferiert jedoch den sogenannten Schema-first-Ansatz, weil er aus Entwicklersicht entscheidende Vorteile biete. Zum einen lasse sich eine Schema-Datei leichter in das Tooling integrieren und zum anderen sei die in föderierten GraphQL-Architekturen kritische Rückwärtskompatibilität leichter sicherzustellen, da sich inkompatible Änderungen in Schema-Diffs leichter erkennen ließen, heißt es im Blogeintrag.
Mehr Details zu dem Domain Graph Service-Framework und dem Umfang der nun als Open Source freigegebenen Komponenten sowie ein Beispiel fĂĽr ein einfaches Schema finden sich im Netflix-TechBlog-Beitrag. Wer tiefergehende Informationen sucht, sollte einen Blick in die Dokumentation im GitHub-Repository des DGS-Frameworks werfen.
(map)