Skip to main content

Envelope: Stream Servisi

Topic: qapu.stream
DLQ: qapu.dlq.stream
Producer: stream-service

Stream servisi iki farklı işlev üstlenir: telemetri pipeline'ını ilerletmek (stream.created) ve envanter değişikliklerini audit kayıt olarak bildirmek (device.inventory.*, modem.inventory.*, sim.inventory.*). Tüm bu eventler tek qapu.stream topic'inde taşınır; event türü payload event alanından ayrışır.

Event Envanteri

EventNe zaman üretilir?ConsumerAmaç
stream.created.v1Stream kaydı başarıyla oluşturulduğundaCalibration ServisiPipeline'ı bir sonraki aşamaya tetiklemek
stream.failed.v1Stream işlemi teknik hatayla sonlandığındaObserverHata görünürlüğü
stream.message_type.unmapped.v1Mesaj tipi sözlükte bulunamadığındaOpsİnceleme uyarısı
device.inventory.created.v1Yeni cihaz kaydı açıldığındaAuditCihaz envanteri audit
device.inventory.updated.v1Cihaz metadata güncellendiğindeAuditCihaz envanteri audit
modem.inventory.created.v1Yeni IMEI kaydı açıldığındaAuditModem envanteri audit
device.modem.changed.v1Cihaz-modem ilişkisi değiştiğindeAuditModem bağlantı audit
sim.inventory.created.v1Yeni ICCID kaydı açıldığındaAuditSIM envanteri audit
device.sim.changed.v1Cihaz-SIM ilişkisi değiştiğindeAuditSIM bağlantı audit
device.firmware.recorded.v1Cihaz için ilk firmware bilgisi kaydedildiğindeAuditFirmware envanteri audit
device.firmware.changed.v1Firmware versiyonu değiştiğindeAuditFirmware güncelleme audit

stream.created.v1

Özet

BaşlıkDeğer
Topicqapu.stream
Producerstream-service
ConsumerCalibration Servisi
Tetikleyiciingest.accepted.v1 tüketimi sonrası stream kaydı başarıyla açıldığında
KritiklikYüksek — kalibrasyon adımını tetikler

Payload

{
"event": "stream.created.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.120Z",
"process_ms": 11
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:00.350Z",
"iccid": null,
"imei": null,
"firmware": "2.3.0"
},
"data": {
"current_stage": "streamed",
"state_version": 2
},
"error": null
}

Alan Açıklamaları

AlanTipZorunluAçıklama
context.device_idstringEvetCihaz kimliği
context.stream_idintegerEvetBu akışın benzersiz kimliği
context.device_timedatetimeEvetCihazın ürettiği ölçüm zamanı
context.stream_timedatetimeEvetStream katmanında kaydın açıldığı zaman
data.current_stagestringEvetSabit: streamed
data.state_versionintegerEvetdevice_buffer güncelleme sürümü

stream.failed.v1

Özet

BaşlıkDeğer
Topicqapu.stream
Producerstream-service
ConsumerObserver Servisi
KritiklikOrta — Observer replay kararı verir

Payload

{
"event": "stream.failed.v1",
"meta": {

"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.300Z",
"process_ms": 14
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null
},
"data": {},
"error": {
"code": "STREAM_DB_WRITE_FAILED",
"message": "Unique constraint violation on stream_records",
"stage": "db_write",
"retryable": true
}
}

stream.message_type.unmapped.v1

Özet

BaşlıkDeğer
Topicqapu.stream
Producerstream-service
ConsumerOps
KritiklikDüşük — pipeline devam eder, uyarı amaçlı

Payload

{
"event": "stream.message_type.unmapped.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.400Z",
"process_ms": 5
},
"context": {
"device_id": "400000011D081B70",
"stream_id": 9823412
},
"data": {
"received_message_type": "0xFF",
"action_taken": "default_mapping_used"
},
"error": null
}

Envanter Audit Eventleri

Aşağıdaki eventler qapu.stream topic'inde taşınır. Hepsi aynı genel yapıyı kullanır; yalnız data bloğu değişir.

Ortak Envelope (Audit Eventleri)

{
"event": "<audit_event>.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.200Z",
"process_ms": 6
},
"context": {
"device_id": "400000011D081B70",
"stream_id": 9823412
},
"data": {},
"error": null
}

device.inventory.created.v1

"data": {
"new_device_id": "400000011D081B70",
"project_id": 12
}

device.inventory.updated.v1

"data": {
"updated_fields": ["firmware_version", "modem_id"]
}

modem.inventory.created.v1

"data": {
"modem_id": 8012,
"imei": "354723XXXXXXX"
}

device.modem.changed.v1

"data": {
"old_modem_id": 8010,
"new_modem_id": 8012
}

sim.inventory.created.v1

"data": {
"sim_id": 41,
"iccid": "8945001234567890123"
}

device.sim.changed.v1

"data": {
"old_sim_id": 39,
"new_sim_id": 41
}

device.firmware.recorded.v1

"data": {
"firmware_version": "02.04.10",
"recorded_at": "2026-03-11T15:22:08Z"
}

device.firmware.changed.v1

"data": {
"old_firmware_version": "02.04.09",
"new_firmware_version": "02.04.10"
}