Ana içeriğe geç

Device Authorities Cache

Bu sayfa, device:{device_id}:authorities key ailesinin Qapu içindeki işletim sözleşmesini tanımlar.

Bu key ailesi, belirli bir cihaza bağlı authority kayıtlarını hızlı çözmek için kullanılır.

Key Pattern

  • device:{device_id}:authorities

Örnek:

  • device:46000000C47CA670:authorities

Owner Service

  • Primary writer: authority/device 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 cihazın authority listesinin projection'ıdır.
  • DB authoritative katmandır.
  • Redis, device-scoped authz kararlarını hızlandırır.

Kanonik Yapı

{
"device_id": "46000000C47CA670",
"authority_ids": [88, 91],
"active_authority_ids": [88],
"updated_at": "2026-04-20T06:00:00Z"
}

Read / Write Paths

Read Path

  1. device:{device_id}:authorities Redis'ten okunur.
  2. Hit varsa authority listesi doğrudan kullanılır.
  3. Miss varsa authorities tablosundan rebuild edilir.

Write Path

  1. Cihaza authority atanır, kaldırılır veya pasiflenir.
  2. Commit sonrası key invalidate edilir.
  3. Sonraki read path rebuild ile yeni listeyi kurar.

Write Order

  1. authorities authoritative kaynaktır.
  2. Redis key DB commit'inden önce güncellenmez.
  3. Primary strateji invalidate + rebuild yaklaşı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: Device authority listesi stale

  • Beklenen davranış: invalidate + rebuild
  • Etki: eski authority ile yanlış device authz üretilmez

Rebuild

Rebuild kaynakları:

  • authorities

Rebuild adımları:

  1. cihaza bağlı authority kayıtları okunur
  2. aktif/pasif ayrımı yapılır
  3. SETEX device:{device_id}:authorities ile yazılır

Gözlemlenebilirlik Metrikleri

  • device_authorities_cache_hit_ratio
  • device_authorities_cache_miss_total
  • device_authorities_rebuild_total
  • device_authorities_invalidation_total

TTL ve Invalidation

  • TTL: 5m - 15m

Invalidation tetikleri:

  1. cihaza authority eklendiğinde
  2. cihazdan authority kaldırıldığında
  3. authority pasif/aktif değiştiğinde

Çapraz Referanslar

  • /projects/qapu/services/redis/keyspace/authority-cache
  • /projects/qapu/services/redis/keyspace/device-user-authz