Ana içeriğe geç

Device Detail Contract

Bu sayfa, device:{device_id}:detail keyinin kanonik alan sozlesmesini tanimlar.

Key Pattern

  • device:{device_id}:detail

Kanonik Yapi (V1)

{
"device_id": "400000011D081B70",
"status": "active",
"project_id": 120,
"device_type": "multi_function_meter",
"created_at": "2025-11-01T08:00:00Z",
"last_data_at": "2026-03-12T12:10:00Z",
"updated_at": "2026-03-12T12:10:00Z",
"identity": {
"firmware": "1.0.7",
"iccid": "8946120802005507363",
"imei": "354485417650889"
},
"calibration": {
"ct_ratio": 200.0
},
"buffer_policy": {
"stream_buffer_ttl_sec": 172800,
"max_payload_bytes": 65535,
"duplicate_window_sec": 120
},
"command_policy": {
"default_timeout_ms": 20000,
"max_retry": 3
},
"cache_meta": {
"version": 18,
"db_updated_at": "2026-03-12T12:10:00Z",
"rebuilt_at": "2026-03-12T12:10:05Z"
}
}

Ownerlik Modeli

  • Primary writer: Device lifecycle sahibi servis (API/Inventory)
  • Secondary writer: Read-through yapan servisler (DB fallback + write-back)
  • Primary readers: Ingest, Stream, Calibration, Communication, Observer

Write Kurallari

  1. DB authoritative kaynaktir.
  2. Redis yazimi DB yazimindan once yapilamaz.
  3. Update sonrasinda atomik patch veya invalidate+rebuild uygulanir.
  4. Delete sonrasinda key zorunlu silinir.

TTL ve Invalidation

  • TTL: 24h
  • Soft refresh: 30m

Invalidation tetikleri:

  1. ct_ratio, firmware, iccid, imei, buffer_policy degisiklikleri
  2. Sema uyumsuz govde
  3. Drift tespiti (DB != Redis)
  4. Cihazin pasif/silinmis duruma gelmesi

Referans Sema

  • Schema dosyasi: /project-qapu/services/redis/keyspace/device-detail/device-detail.schema.json

Bu dokuman setinde schema referans amacli tutulur; zorunlu bir build adimi tanimli degildir.