Kurumsal trafik yönetimi artık yalnızca yük dengeleme kuralından ibaret değildir. Aynı platform içinde trafik yönlendirme, sağlık kontrolü, log zenginleştirme, GTM kararı, güvenlik skoru, captcha politikası, ACL ve erişim bağlamı birlikte çalışır. Sorun, bu modüllerin çoğu üründe ayrı ifade dili, ayrı değişken adı ve ayrı hata davranışıyla yönetilmesidir.
Bu parçalanma operatörü sürekli bağlam değiştirmeye zorlar. Aynı değer bir modülde farklı, başka bir modülde farklı yazılır; kullanıcı ülkesi, istemci IP'si, istek yolu, JWT claim'i veya WAAP skoru her yerde ayrı mantıkla ele alınır. Sonuçta öğrenme maliyeti artar, kural tekrarları çoğalır ve debug süresi uzar.
Daha tehlikelisi, aynı iş kuralının farklı modüllerde farklı yorumlanmasıdır. Sağlık kontrolünde kullanılan koşul ile trafik yönlendirme koşulu ayrışırsa, sistem bir servisi sağlıklı kabul ederken aynı servise giden trafiği başka bir mantıkla kesebilir. Log tarafında aynı bağlam eksik kaydedilirse, olay sonrası inceleme de zayıflar.
Doğru yaklaşım, tek bir ifade dilini ortak karar katmanı haline getirmektir. Bu dil fonksiyonları, değişkenleri, tip kontrolünü ve kullanım kapsamını merkezi olarak tanımlamalı; her modül aynı ifade ağacını kendi çalışma alanına uygun şekilde kullanmalıdır.
TR7 FX Motoru bu ihtiyacı karşılar: farklı modüllerde dağılmış karar mantığını tek ifade dili, tek değişken kataloğu ve kayıt öncesi doğrulama modeli altında birleştirir.
TR7, karar mantığını modül bazlı ayrı sözdizimlerine bölmek yerine, ortak FX ifade ağacı üzerinden derler ve uygular.
FX motoru 41 yerleşik fonksiyon ve 173 değişkeni 14 grup altında sunar. Bağlantı, HTTP başlıkları, gövde, SSL, zamanlayıcı, istatistik, WAAP ve AAM bağlamları aynı katalog üzerinden seçilir.
Uygun fonksiyonlar doğrudan yüksek performanslı sample fetch ve converter zinciri olarak çalıştırılır. Örneğin gövde içindeki JSON alanı okunup metin dönüştürücüyle normalize edilebilir ve tek ifade sonucuna bağlanabilir.
XML XPath, karmaşık JWT sorguları veya özel işlem gerektiren fonksiyonlar Lua tabanlı aksiyon olarak üretilir. Böylece FX dili tek kalır; çalışma yolu fonksiyonun ihtiyacına göre seçilir.
Trafik kuralı, sağlık kontrolü, log formatı, GTM tetikleyici, captcha politikası ve ACL aynı fonksiyon ve değişken modelini kullanır. Bu ortaklık, operatörün her modül için yeni bir karar dili öğrenme ihtiyacını azaltır.
FX İfade ve Değişken Motoru, platform genelinde kullanılabilir değişkenleri ve fonksiyonları şema tabanlı, doğrulanabilir ve derlenebilir bir modele dönüştürür.
FX değişken kataloğu bağlantı, HTTP başlıkları, gövde, istemci, istek satırı, yanıt satırı, SSL, istatistik, zamanlayıcı, tracking, WAAP, AAM, VarBuilder ve diğer gruplardan oluşur. Operatör kaynak IP, hedef port, istek yolu, yanıt durumu, SNI, sertifika bilgisi, WAAP skoru, AAM kullanıcı rolü veya özel değişken gibi değerleri aynı modelden seçer. Bu yapı, farklı modüllerde aynı bağlamın farklı isimlerle yazılmasını engeller. Kural dili daha tutarlı, daha okunabilir ve daha az hataya açık hale gelir.
Fonksiyon kataloğu converter, matematik, XML, JSON, JWT, IP, metin, hash, FIX, MQTT, map/list, parametre ve koşullu seçim gruplarını kapsar. JSONQUERY, XMLQUERY, JWTHEADER, JWTPAYLOAD, PARAM, DIGEST, LOWERCASE, STRREPLACEALL, MAP_STR, LIST_REG ve TERNARY gibi fonksiyonlar aynı ifade içinde birlikte kullanılabilir. Operatör hem basit metin dönüşümleri hem de gövde içeriği sorguları için aynı FX modelini kullanır. Bu, kural yazımını kodlama işinden çıkarıp yönetilebilir politika tanımına yaklaştırır.
Native olarak desteklenen değişken ve fonksiyonlar doğrudan sample fetch ve converter zinciri halinde derlenir. Bu yol, header okuma, path eşleştirme, metin dönüştürme, map kontrolü ve belirli gövde sorguları gibi sık kullanılan kararlar için uygundur. Ara katmanda gereksiz yorumlama yapılmadığı için performans öngörülebilir kalır. Trafik kuralları, mümkün olduğunda platformun en verimli çalışma yoluna çevrilir.
Native zincirle ifade edilemeyen bazı kontroller Lua aksiyonu olarak çalıştırılır. XML XPath sorguları, özel JWT kontrolleri veya karmaşık koşullu işlemler bu yolla desteklenebilir. Operatör açısından ifade dili değişmez; sistem arka planda doğru çalışma yolunu seçer. Bu ayrım, hem performanslı native yolu hem esnek Lua yolunu aynı FX deneyiminde birleştirir.
Her fonksiyon argümanı integer, string, jsonPath, xmlPath, hash veya smartInput gibi tiplerle tanımlanır. UI ve yönetim katmanı bu tipleri kayıt sırasında kontrol eder. Yanlış argüman tipi, eksik parametre veya uyumsuz nested kullanım runtime'a taşınmadan yakalanır. Bu yaklaşım, üretim trafiğinde beklenmeyen kural hatalarını azaltır.
Her değişken hangi modüllerde, hangi koşul tiplerinde ve hangi trafik aşamasında kullanılabileceğini metadata olarak taşır. Örneğin bazı değişkenler yalnızca response aşamasında geçerlidir; bazıları yalnızca log şablonunda veya belirli koşul tipinde gösterilir. UI bu bilgiyi kullanarak operatöre bağlama uygun seçenekler sunar. Böylece geçersiz değişkenlerin yanlış yerde kullanılması önlenir.
VarBuilder grubu, operatörün runtime sırasında hesaplanan özel değişkenler üretmesini sağlar. Bir değer FX ifadesiyle hesaplanır, işlem kapsamında saklanır ve sonraki kurallarda tekrar kullanılabilir. Bu model, aynı hesaplamanın birden fazla yerde tekrar yazılmasını azaltır. Karmaşık akışlarda karar mantığı daha modüler ve izlenebilir hale gelir.
FX konsolu fonksiyon, değişken, argüman ve kullanım kapsamı bilgisini merkezi şemadan alır. Operatör fonksiyon adı veya değişken yazarken uygun seçenekleri görür; boş değer kabul eden argümanlar ve parantez gerektiren fonksiyonlar UI tarafından doğru biçimde yönlendirilir. Bu, hem yeni kullanıcıların öğrenme süresini azaltır hem de deneyimli operatörlerin daha hızlı kural yazmasını sağlar. Yazılan ifade daha kayıt aşamasına gelmeden daha doğru hale gelir.
FX motoru yalnızca ifade yazma deneyimi değil; doğrulama, kapsam, audit, performans ve edge case davranışlarıyla birlikte tasarlanır.
Her fonksiyonun beklediği argüman listesi ve tipleri merkezi tanımda tutulur. UI ve yönetim katmanı bu bilgiyi ayrı ayrı kontrol eder. Böylece yalnızca ekranda değil, kayıt işleminde de hatalı ifade reddedilir.
Bazı değişkenler yalnızca response aşamasında anlamlıdır. Bu değişkenler metadata ile işaretlenir ve request aşamasındaki koşullarda kullanılmaları engellenir. Bu ayrım, aşama kaynaklı runtime hatalarını azaltır.
Bazı değişkenler geriye dönük uyumluluk veya iç kullanım için sistemde tutulur ancak UI'da gösterilmez. Bu sayede platform eski ifadeleri çalıştırabilirken operatöre sade ve doğru değişken listesi sunulur. Görünür katalog ile internal kullanım birbirinden ayrılır.
XMLQUERY, XMLPATHTYPE ve XMLPATHEXISTS gibi bazı fonksiyonlar Lua converter bileşenlerine ihtiyaç duyar. Bu bileşenler servis başlatılırken yüklenir ve ilgili FX fonksiyonları tarafından kullanılır. Eksik converter durumları deployment ve sağlık kontrol süreçlerinde yakalanmalıdır.
Her ifade ağacı değişiklik geçmişiyle birlikte izlenebilir olmalıdır. Kim, ne zaman, hangi ifadeyi değiştirdi bilgisi operasyon ve güvenlik incelemeleri için kritik değerdedir. Bu kayıtlar özellikle trafik davranışını değiştiren kurallarda geri dönüş ve sorumluluk takibi sağlar.
STRREPLACEALL ve regex tabanlı bazı kontroller dikkatli yazılmadığında yüksek işlem maliyeti üretebilir. Backtracking ağırlıklı pattern'ler güvenlik ve performans riski oluşturabilir. UI bu tür durumlarda operatörü uyarmalı ve daha güvenli pattern yazımını teşvik etmelidir.
SaaS ekipleri, response gövdesi içindeki `$.status == "OK"` kontrolünü hem sağlık kontrolünde hem trafik kuralında aynı FX ifadesiyle kullanabilir. Aynı servis durumu farklı modüllerde farklı yazılmadığı için operasyonel tutarlılık artar.
SOC ekipleri, log formatına JWTPAYLOAD üzerinden kullanıcı e-posta adresi, rol veya tenant bilgisini ekleyebilir. Olay incelemesinde ham IP ve URL bilgisinin ötesine geçilerek kullanıcı bağlamı görünür hale gelir.
Global servis ekipleri, DNS yanıtı seçerken ülke, ASN veya gecikme bilgisini FX ifadesiyle değerlendirebilir. Aynı mantık gerektiğinde trafik yönlendirme kuralında da kullanılabilir.
E-ticaret ekipleri, kullanıcı kimliğinden üretilen hash değerine göre trafiğin belirli yüzdesini yeni varyanta aktarabilir. Dağıtım deterministik olur; aynı kullanıcı her istekte aynı deneyime yönlendirilir.
Trafik kuralı, sağlık kontrolü, log, GTM ve güvenlik kararlarını aynı FX modeliyle yönetin. Kendi ortamınızda canlı bir kurulumda gezdirelim.