Apollo Federation öffnet die Microservices-Welt für GraphQL

Die quelloffene Erweiterung der Apollo-Plattform macht sämtliche Daten einer Organisation über einen verteilten Graphen für verschiedene Services nutzbar.

In Pocket speichern vorlesen Druckansicht 6 Kommentare lesen
Apollo Federation öffnet die Microservices-Welt für GraphQL

(Bild: Apollo)

Lesezeit: 2 Min.

Die Macher hinter der Apollo-GraphQL-Plattform haben mit Apollo Federation einen alternativen Ansatz zu einem monolithischen Graphen in verteilten Microservices-Umgebungen vorgelegt. Entwickler sollen damit in die Lage versetzt werden, sämtliche in einem Unternehmen verteilten Daten über eine einzelne GraphQL Query nutzen zu können – und zwar ohne dafür fragilen Schema-Stitching-Code schreiben oder eine monolithische Architektur implementieren zu müssen.

Apollo erfüllt damit einen lang gehegten Wunsch von GraphQL-Anwendern, wie Engineering Manager James Baxley III im Blogbeitrag zur Ankündigung von Apollo Federation betont. Von Seiten der Entwickler habe er immer wieder den Wunsch nach einer effizienten Methode zur dienstübergreifenden Nutzung von Daten vernommen. Als erster Schritt auf dem Weg zu einem verteilten GraphQL-Einsatz soll Apollo Federation nicht nur das Schema-Stitching überflüssig machen, sondern insbesondere Herausforderungen rund um stabilen Gateway-Code, die Koordination sowie die Separation of Concerns adressieren.

Dazu baut Apollo Federation auf einen deklarativ aus dem Schema heraus zusammengesetzten Graphen, sodass Entwickler auf imperativen Stitching-Code verzichten können. Um die Arbeit mehrerer Teams mit einem einzelnen Graphen zu erleichtern, erfolgt die Definition von Typen nicht zentral, sondern verteilt über die Teams nach dem Prinzip der Separation of Concerns. Der neue föderative Ansatz beschränkt sich dabei allein auf die in der GraphQL-Sprachspezifikation bereits festgelegten Funktionen.

Beispielhafte Architektur für Apollo Federation

(Bild: Apollo GraphQL)

Die Implementierung von Apollo Federation verbindet die föderierten Dienste – die eigenständige GraphQL-APIs sind – mit einem Gateway zum Zusammensetzen des Graphen sowie zur Ausführung der Querys. Weitere Details finden sich in der Ankündigung und der Dokumentation. Auf der GitHub-Projektseite, wo Apollo Federation auch als Open Source frei verfügbar zum Download bereit liegt, zeigt eine Demoanwendung anhand eines beispielhaften Repos, wie sich ein verbundener Graph mit vier Services und einem Gateway aufbauen lässt. (map)