Repository navigation
Cache ve Performans
English · Türkçe · Languages / Diller
Kapsam: JSON API Forge 0.5.1 · İnceleme: 17 Eylül 2026 · Dil: Türkçe
Forge memory, Redis ve tiered cache destekler. Memory tek süreçte, Redis ortak altyapıda, tiered ise yerel L1 ve ortak L2 yaklaşımında çalışır. Bu seçeneklerin aynı veritabanı tutarlılık garantisini verdiğini varsaymayın.
{
"cache": {
"enabled": true, "backend": "redis", "default_ttl_seconds": 30,
"stale_ttl_seconds": 0, "max_entries": 10000, "fail_open": true
}
}Redis için süreçte REDIS_URL tanımlanmalıdır. fail_open=true, cache arızasında işin asıl veri kaynağına devam edebilmesini amaçlar; veritabanınızın bu yükü kaldırması gerekir. Rate limiter'ın fail policy'si bundan ayrıdır.
| Yüzey | Kontrol |
|---|---|
| SQL/Mongo list ve read | Proje cache + resource override |
| Read-only GET operation |
OperationCacheConfig; varsayılan kapalı |
| Data source | TTL ve stale ayarları |
| API key metadata | Güvenlik ayarında ayrı TTL |
| JWKS | Ayrı güvenlik cache süresi |
Mutation kaynak namespace'ini geçersizleştirir. Özel RPC'de ilgili resource/operation invalidation listelerini yazmak gerekir. SQL'i dışarıdan değiştirmek veya keyfi hook çalıştırmak bütün Forge cache'lerini kendiliğinden yenilemez.
Cache anahtarları tenant/owner/principal ve sorgu bağlamından ayrılmamalıdır. Kullanıcıya göre farklı dönen operation için vary_by_principal önemli bir yetki sınırıdır. Cache'e yanlış kullanıcı bağlamıyla veri koymak hızlı bir veri sızıntısı yaratabilir.
TTL'nin kısa olması güncellik, uzun olması hit oranı sağlar. Stale penceresi bilinçli olarak eski sonuca izin verir; bakiye veya kritik durum kontrolünün doğruluk kaynağı olarak kullanmayın. Single-flight aynı anda gelen pahalı yüklemeleri azaltır; transaction/lock yerine geçmez.
- Sorgu planı, doğru index ve bounded sonuç boyutu.
- Bağlantı havuzu ve worker sayısıyla toplam DB kapasitesi.
- Endpoint timeout ve concurrency bütçesi.
- Cache hit/miss, invalidation sıklığı ve bellek sınırı.
- Temsilî yükte p50/p95/p99 latency ve hata oranı.
Tek laptop benchmark'ından evrensel RPS garantisi çıkarmayın. scripts/load_test.py küçük tanısal probdur. Gerçek trafik şekli, payload, tenant sayısı, cache sıcaklığı ve upstream gecikmesini belirtmeden sonuç kıyaslamayın.
Bu sayfa aşağıdaki sabit commitlerdeki davranışı açıklar. Yeni bir sürümde aynı davranışın sürdüğünü varsaymayın.