Genel Bakış
Cache politikası, politika zinciri içinde bağımsız cache okuma, yazma ve silme işlemlerini gerçekleştirir. Bu politika, API Çağrısı politikasının kendi içindeki cache mekanizmasından (response cache) farklı olarak, geliştiriciye açık şekilde ne zaman cache’e erişileceğini, ne yazılacağını ve ne silineceğini kontrol etme yetkisi verir. Böylece sık değişmeyen veriler (currency rates, user profiles, configuration settings gibi) politika akışında dinamik olarak yönetilebilir.Amacı Nedir?
- Backend servis yükünü azaltarak sistem performansını artırmak.
- API yanıt sürelerini kısaltmak: Cache hit’te arka uçta sorgu yapılmaz.
- Expensive (pahalı) computation veya API çağrılarının sonuçlarını saklayarak tekrar yapılmasını önlemek (örneğin, kolay değişmeyen ürün kataloğu, döviz kurları).
- Politika zinciri içinde veri dönüşümleri sırasında geçici verileri cache’lemek.
- Dinamik cache invalidation (geçersizleştirme) ile cache kontrolünü esnek tutmak.
Çalışma Prensibi
Cache politikası üç ana operasyonu destekler:1. LOOKUP (Oku)
Cache’teki bir entry’i arar. Hit ise hedef Variable’a yazılır ve kalan politika akışına normalde devam edilir (veya Optional exit yapılabilir). Miss ise akış devam eder, Variable’a yazılmaz.- Cache Key: Aranacak entry’nin anahtarı (variable interpolation destekli:
user:#{request.userId},currency:${ENV_CURRENCY}) - Target Variable: Hit durumunda cache değerinin yazılacağı Variable
- Hash Key (İsteğe bağlı): Anahtarı MD5/SHA256 ile hash’le (uzun anahtarlar için)
- TTL Kaynağı: Dinamik (runtime Variable’dan) veya sabit
2. POPULATE (Yaz)
Cache’e bir entry yazılır. Değer bir Variable kaynağından alınır.- Source Variable: Cache’e yazılacak değerin kaynağı (bir Variable)
- Cache Key: Entry’nin kaynağında kaydedileceği anahtar
- Hash Key (İsteğe bağlı): Anahtarı hash’le
- TTL Seçenekleri:
- Sabit TTL: Belirli saniye (örn:
300= 5 dakika) - Dinamik TTL: Bir Variable’dan okunur (örn:
#{response.cacheExpiry})
- Sabit TTL: Belirli saniye (örn:
3. INVALIDATE (Sil)
Cache’ten bir entry’i siler. Örneğin, veri güncellemesi sonrasında eski cache’i temizlemek.- Cache Key: Silinecek entry’nin anahtarı
- Hash Key (İsteğe bağlı): Anahtarı hash’le
Özellikler ve Yetenekler
Temel Özellikler
- Üç İşlem Tipi: LOOKUP, POPULATE, INVALIDATE’i ayrı ayrı veya ihtiyaca göre kombinleyen senaryolar destekle.
- Variable Interpolation: Cache key’de
${}(Environment Variable) ve#{}(Context/Runtime Variable) kullanımı.- Örnek:
user:#{request.userId}→ runtime’dauser:123olur - Örnek:
currency:${ENV_REGION}→currency:EURolur
- Örnek:
- Hash Key Seçeneği: Anahtarı MD5 veya SHA256 ile hash’le (uzun anahtarları normalize etmek için).
- Distributed vs Local Cache: Platform yöneticisi tarafından tanımlanan cache seçimi. Distributed (Hazelcast, Redis benzeri) veya Local (JVM in-memory) desteği.
- Dinamik TTL: Yazılan entry’nin TTL’si, response body’deki bir alan veya Variable’dan okunabilir.
İleri Düzey Özellikler
- Cache Bağlantısı Timeout’u (
cacheConnectionTimeoutInSeconds): Cache servisine bağlantı süresi limit’i. Ayar bulunamazsa varsayılan kullanılır. - Hata İşleme (
errorAction):- CONTINUE: Cache erişim hatası → hata yok sayılır, akış devam eder (Variable yazılmaz veya boş kalır)
- FAULT: Cache erişim hatası → politika fail’ler, hata yanıtı üretilir
- Condition Desteği: Koşul kuralları ile bu politika sadece belirli durumlarda çalışabilir.
- Export/Import: Politika yapılandırması ZIP dosyası olarak dışa aktarılabilir.
- Deploy ve Versiyonlama: Değişiklikleri canlı ortama deploy etme, kullanım raporları.
Kullanım Senaryoları
Politika Parametrelerini Yapılandırma
Bu adımda, kullanıcı yeni bir Cache politikası oluşturabilir ya da mevcut politika parametrelerini yapılandırarak cache işlemlerini tanımlayabilir.Yeni Cache Politikası Oluşturma


