Die Service-orientierte Architektur mit einem datenorientierten Service Mesh zähmen
Airbnb entwickelte Viaduct, ein datenorientiertes Service Mesh, um die Modularität in seiner auf Microservices basierenden Architektur zu verbessern. Traditionelle Service Meshes sind prozedurorientiert, während sich Viaduct auf Daten konzentriert und ein GraphQL-Schema als zentrales Organisationsprinzip verwendet. Dieses Schema definiert Typen, Abfragen und Mutationen und abstrahiert Service-Abhängigkeiten von den Konsumenten. Viaduct ermöglicht Datenkonsumenten den Zugriff auf Informationen aus mehreren Microservices ohne direkte Abhängigkeiten und vereinfacht so die Architektur. Das zentrale Schema ermöglicht einfachere API- und Datenbank-Schema-Änderungen, wodurch die Datenagilität verbessert und der Koordinierungsaufwand reduziert wird. Viaduct integriert serverlose Funktionen für abgeleitete Daten und minimiert so die Anzahl und Komplexität der Microservices. Das System, das mit graphql-java erstellt wurde, bietet Funktionen wie detaillierte Feldauswahl, Datenbeobachtbarkeit und Intra-Request-Caching. Es nutzt die Tools des GraphQL-Ökosystems und betreibt einen erheblichen Teil des API-Traffics von Airbnb. Viaduct begegnet Herausforderungen im Zusammenhang mit spaghettihaften Abhängigkeitsgraphen, die in großen Service-Oriented Architectures weit verbreitet sind. Der Übergang zu einem datenorientierten Ansatz zielt darauf ab, den Datenzugriff zu rationalisieren und die allgemeine Systemwartbarkeit zu verbessern. Die Architektur begann mit einem sauberen Schema und ist gewachsen, um zahlreiche Kernentitäten zu umfassen. Die bereits in der Produktion eingesetzte Lösung veranschaulicht das Engagement von Airbnb für die Weiterentwicklung seiner SOA.