Permission Cache
Bu sayfa, permission:{permission_id} key ailesinin Qapu içindeki işletim sözleşmesini tanımlar.
Bu key ailesi, tekil permission entity bilgisini hızlı çözmek için kullanılır.
Key Pattern
permission:{permission_id}
Örnek:
permission:11
Owner Service
- Primary writer: permission yöneten servis
- Primary readers: API, auth middleware, projection builder
- Secondary writer: read-through rebuild yapan servisler
Authoritative Source
permissions
Temel İlke
- Bu key permission entity kaydının cache kopyasıdır.
- DB authoritative katmandır.
- Redis lookup maliyetini düşürür.
Kanonik Yapı
{
"permission_id": 11,
"code": "reports.view",
"name": "Reports View",
"is_active": true,
"updated_at": "2026-04-20T06:00:00Z"
}
Read / Write Paths
Read Path
permission:{permission_id}Redis'ten okunur.- Hit varsa permission bilgisi doğrudan kullanılır.
- Miss varsa
permissionstablosundan rebuild edilir.
Write Path
- Permission DB'de oluşturulur, güncellenir veya pasiflenir.
- Commit sonrası key invalidate edilir veya overwrite edilir.
- Sonraki read path gerekirse rebuild yapar.
Write Order
permissionsauthoritative kaynaktır.- Redis key DB commit'inden önce güncellenmez.
invalidate + rebuildvarsayılan yaklaşımdır.
Failure ve Drift Senaryoları
Senaryo A: Redis miss
- Beklenen davranış: DB fallback + write-back
- Etki: ilk lookup yavaşlar, sonra hızlanır
Senaryo B: Permission stale
- Beklenen davranış: invalidate + rebuild
- Etki: eski permission metadata'sı auth zincirine sızmaz
Rebuild
Rebuild kaynakları:
permissions
Rebuild adımları:
- permission kaydı DB'den okunur
- gövde normalize edilir
SETEX permission:{permission_id}ile yazılır
Gözlemlenebilirlik Metrikleri
permission_cache_hit_ratiopermission_cache_miss_totalpermission_cache_rebuild_totalpermission_cache_invalidation_total
TTL ve Invalidation
- TTL:
10m - 30m
Invalidation tetikleri:
- permission code değişirse
- permission name değişirse
- permission active flag değişirse
Çapraz Referanslar
/projects/qapu/services/redis/keyspace/permission-code-cache/projects/qapu/services/redis/keyspace/authority-permissions-cache