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
- DB authoritative kaynaktir.
- Redis yazimi DB yazimindan once yapilamaz.
- Update sonrasinda atomik patch veya invalidate+rebuild uygulanir.
- Delete sonrasinda key zorunlu silinir.
TTL ve Invalidation
- TTL:
24h - Soft refresh:
30m
Invalidation tetikleri:
ct_ratio,firmware,iccid,imei,buffer_policydegisiklikleri- Sema uyumsuz govde
- Drift tespiti (DB != Redis)
- 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.