GraphQL Federation Nedir?

İngilizce: GraphQL Federation

GraphQL Federation, bağımsız ekiplerin şemalarını birleştirerek tek GraphQL supergraph sunmasını sağlayan mimaridir.

GraphQL Federation Nedir?

GraphQL Federation, farklı servislerin sahip olduğu GraphQL şemalarını tek bir üst şema altında birleştiren mimari yaklaşımdır. Ürün, kullanıcı, sipariş ve fatura gibi alanlar ayrı ekiplerde kalabilir; istemci ise tek GraphQL API ile konuşur.

Bu modelde her servis “subgraph” olarak kendi tiplerini ve resolver’larını yönetir. Router veya gateway katmanı gelen sorguyu parçalar, ilgili servislere dağıtır ve sonuçları tek yanıt olarak birleştirir.

Nasıl Çalışır?

Federation, ortak entity tanımlarıyla servisler arası bağlantı kurar. Örneğin ürün servisi Product tipinin temel alanlarını, yorum servisi aynı Product varlığına bağlı yorum alanını sağlar. Router, sorgunun hangi bölümünün hangi subgraph’tan geleceğini planlar.

Şema sahipliği net değilse federation hızla karmaşıklaşır. Alan adlandırma, versiyonlama, yetkilendirme, sorgu maliyeti ve geriye dönük uyumluluk için ekipler arası sözleşme gerekir.

İş Dünyasında Kullanımı

GraphQL Federation, büyük ürünlerde tek monolitik API ekibinin darboğaz olmasını önlemek için tercih edilir. Domain ekipleri kendi mikroservis sınırlarında çalışırken müşteri uygulamaları tek veri grafı üzerinden ilerleyebilir.

GraphQL kullanan her proje federation’a ihtiyaç duymaz. Birkaç kaynak ve küçük ekip için basit bir şema daha anlaşılırdır; federation, servis sayısı ve ekip sahipliği gerçekten ayrıştığında anlam kazanır.