User Authorities Cache
Bu sayfa, user:{user_id}:authorities key ailesinin Qapu içindeki işletim sözleşmesini tanımlar.
Bu key ailesi, bir kullanıcının bağlı authority kayıtlarını tek lookup ile çözmek için kullanılır.
Key Pattern
user:{user_id}:authorities
Örnek:
user:123:authorities
Owner Service
- Primary writer: authority ilişkilerini yöneten servis
- Primary readers: API, auth middleware, projection builder
- Secondary writer: read-through rebuild yapan servisler
Authoritative Source
authorities
Temel İlke
- Bu key, kullanıcının authority listesinin projection'ıdır.
- DB authoritative katmandır.
- Redis, request-time join maliyetini azaltır.
Kanonik Yapı
{
"user_id": 123,
"authority_ids": [88, 89],
"active_authority_ids": [88],
"updated_at": "2026-04-20T06:00:00Z"
}
Read / Write Paths
Read Path
user:{user_id}:authoritiesRedis'ten okunur.- Hit varsa authority listesi doğrudan kullanılır.
- Miss varsa
authoritiestablosundan rebuild edilir.
Write Path
- Kullanıcıya authority atanır, kaldırılır veya pasiflenir.
- Commit sonrası key invalidate edilir.
- Sonraki read path rebuild ile yeni listeyi kurar.
Write Order
authoritiesauthoritative kaynaktır.- Redis key DB commit'inden önce güncellenmez.
- Primary strateji
invalidate + rebuildyaklaşımıdır.
Failure ve Drift Senaryoları
Senaryo A: Redis miss
- Beklenen davranış: DB fallback + write-back
- Etki: ilk request yavaşlar, sonra hız kazanılır
Senaryo B: Authority listesi stale
- Beklenen davranış: invalidate + rebuild
- Etki: eski authority ile yanlış authz üretilmez
Rebuild
Rebuild kaynakları:
authorities
Rebuild adımları:
- kullanıcıya bağlı authority kayıtları okunur
- aktif/pasif ayrımı yapılır
SETEX user:{user_id}:authoritiesile yazılır
Gözlemlenebilirlik Metrikleri
user_authorities_cache_hit_ratiouser_authorities_cache_miss_totaluser_authorities_rebuild_totaluser_authorities_invalidation_total
TTL ve Invalidation
- TTL:
5m - 15m
Invalidation tetikleri:
- kullanıcıya authority eklendiğinde
- kullanıcıdan authority kaldırıldığında
- authority pasif/aktif değiştiğinde
Çapraz Referanslar
/projects/qapu/services/redis/keyspace/authority-cache/projects/qapu/services/redis/keyspace/device-user-authz