Role Cache
Bu sayfa, role:{role_id} key ailesinin Qapu içindeki işletim sözleşmesini tanımlar.
Bu key ailesi, role entity bilgisini hızlı çözmek için kullanılır.
Key Pattern
role:{role_id}
Örnek:
role:7
Owner Service
- Primary writer: role yöneten servis
- Primary readers: API, auth middleware, projection builder
- Secondary writer: read-through rebuild yapan servisler
Authoritative Source
roles
Temel İlke
- Bu key role entity kaydının cache kopyasıdır.
- DB authoritative katmandır.
- Redis lookup maliyetini düşürür.
Kanonik Yapı
{
"role_id": 7,
"code": "project_admin",
"name": "Project Admin",
"is_active": true,
"updated_at": "2026-04-20T06:00:00Z"
}
Read / Write Paths
Read Path
role:{role_id}Redis'ten okunur.- Hit varsa role bilgisi doğrudan kullanılır.
- Miss varsa
rolestablosundan rebuild edilir.
Write Path
- Role DB'de oluşturulur, güncellenir veya pasiflenir.
- Commit sonrası key invalidate edilir veya overwrite edilir.
- Sonraki read path gerekirse rebuild yapar.
Write Order
rolesauthoritative 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: Role stale
- Beklenen davranış: invalidate + rebuild
- Etki: eski role metadata'sı auth zincirine sızmaz
Rebuild
Rebuild kaynakları:
roles
Rebuild adımları:
- role kaydı DB'den okunur
- gövde normalize edilir
SETEX role:{role_id}ile yazılır
Gözlemlenebilirlik Metrikleri
role_cache_hit_ratiorole_cache_miss_totalrole_cache_rebuild_totalrole_cache_invalidation_total
TTL ve Invalidation
- TTL:
10m - 30m
Invalidation tetikleri:
- role code değişirse
- role name değişirse
- role active flag değişirse
Çapraz Referanslar
/projects/qapu/services/redis/keyspace/permission-cache/projects/qapu/services/redis/keyspace/user-auth-context