API Gateway Her Problemi Çözmez
Kenarda biriken domain kuralı

Gateway cazip. Tek kapı, tek log, tek JWT doğrulama. İlk ay herkes mutlu. İkinci ay 'öğrenci indirimini header'dan okuyalım', üçüncü ay 'şu SKU'yu şu ülkede keselim', dördüncü ay gateway repo'su ürün repo'sundan kalın. Ürün ekibi, kuralı görmek için YAML okuyor.
Kenarın işi tanıyorum: kimlik doğrula, kotayı uygula, doğru host'a ilet, protokol çevir. İşin kendisi — fiyat, stok, yetki nesnesi — çağrının gittiği yerde durmalı. Aksi halde iki gerçeklik çıkar: gateway'in sandığı kural, servisin uyguladığı kural.
Kenarda duranı ayırmak
JWT imzasını kenarda doğrulamak doğru. Claim'den 'bu kullanıcı şu siparişi silebilir' çıkarmak yanlış. Siparişin sahibi serviste. Kenar, kim olduğunu söyler; neye izinli olduğunu tahminiyle bağlayamaz, çünkü kaynak orada değil.
app.UseAuthentication();
app.UseRateLimiter();
app.MapReverseProxy();
// Kenarda durmayan:
// if (user.HasClaim("student") && path.StartsWith("/checkout"))
// context.Items["discount"] = 0.15m;
Yorumdaki satır masum duruyor. Üç ay sonra öğrenci tanımı değişir, kampanya kuponla birleşir, B2B fiyatı ayrı akar. Gateway deploy'u ürün deploy'una bağlanır. Bağımsız kenar vaadi biter.
Yetkiyi kenara yığmak
Ece'nin yorumunda dediği şey buydu: auth'u gateway'e yığıp domain kuralını orada biriktirmek ürünü yavaşlatıyor. Yavaşlık milisaniye değil, karar süresi. Bir kuralı değiştirmek için kenar ekibini bekliyorsanız, o kural yanlış evde.
B2B'de 'bu hesap şu depo fiyatını görür' kuralı, hesap grafına bakar. Gateway, grafı cache'lemedikçe her istekte ya yanlış söyler ya da servisi zaten arar. Arayacaksa kuralı baştan serviste yazın. Cache'leyecekse invalidation'ı da kenara taşımış olursunuz; Emre'nin cache yazılarındaki fatura orada durur.
Gateway'in durduğu yer
- Sertifika, TLS, isteği doğru host'a bırakmak.
- Kimliği doğrulamak, isteğe bir {sub} bırakmak.
- Kaba kota: IP, hesap, uç.
- Gövdeyi şişiren veya sahte host taşıyan isteği kesmek.
Bunların hiçbiri ürün kuralı değil. Ürün kuralı test edilmek ister. Gateway testleri çoğu ekipte 'config değişti, umarım'. Umarım, kampanya sabahı bozulur.
Birden fazla tüketici varsa — web, mobil, iç araç — ortak kuralı kenara koymak cazip. Ortak olan çoğu zaman kimlik ve kota. İndirim ortak sanılır, sonra mobil eski kuralı, web yenisini uygular çünkü biri kenardan, biri servisten okur. Tek ev, servis.
Gateway bir kapı. Kapıya kasa, depo ve muhasebe koymayın. Kapı açık kalsın, iş içeride kalsın. Kenarı şişirmek, ilk ay düzen; altıncı ay, kimsenin dokunamadığı bir ikinci monolit.
Yorumlar
Yorumlar (0)
Yorumlar üyelere açık. Üye ol · Giriş yap