Ana içeriğe geç

Event Sözleşmeleri

Bu sayfa, Stream Servisinin ürettiği tüm event türlerini ve payload sözleşmelerini tek yerde toplar.

Event Envanteri

EventAmaçÖnerilen Topic
stream.created.v1Stream kaydı başarılı tamamlandığında downstream tetiklemeqapu.stream.raw
stream.failed.v1Stream akışında teknik hata oluştuğunda hata bildirimiqapu.stream.failed
device.inventory.created.v1Yeni cihaz kaydı açıldığında auditqapu.stream.audit
device.inventory.updated.v1Cihaz metadata güncellendiğinde auditqapu.stream.audit
modem.inventory.created.v1Yeni modem (IMEI) kaydı açıldığında auditqapu.stream.audit
device.modem.changed.v1Cihazın modem ilişkisi değiştiğinde auditqapu.stream.audit
sim.inventory.created.v1Yeni SIM (ICCID) kaydı açıldığında auditqapu.stream.audit
device.sim.changed.v1Cihazın SIM ilişkisi değiştiğinde auditqapu.stream.audit
device.firmware.recorded.v1Cihaz için ilk firmware bilgisi kaydedildiğinde auditqapu.stream.audit
device.firmware.changed.v1Cihaz firmware versiyonu değiştiğinde auditqapu.stream.audit
stream.message_type.unmapped.v1Mesaj tipi sözlükte bulunamadığında inceleme uyarısıqapu.stream.warning

Ortak Event Şeması

Tüm eventlerde ortak üst yapı korunur:

{
"event": "event.name.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",
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:08Z"
},
"data": {},
"error": null
}

1) stream.created.v1

{
"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",
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:08Z"
},
"data": {
"current_stage": "streamed",
"state_version": 2
},
"error": null
}

2) stream.failed.v1

{
"event": "stream.failed.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",
"stream_id": null,
"device_time": "2026-03-11T15:22:06Z"
},
"data": null,
"error": {
"failed_stage": "stream",
"error_code": "STREAM_WRITE_FAILED",
"error_message": "streams kaydı oluşturulamadı"
}
}

3) device.inventory.created.v1

{
"event": "device.inventory.created.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.030Z",
"process_ms": 4
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null,
"device_time": "2026-03-11T15:22:06Z"
},
"data": {
"action": "created",
"table": "devices"
},
"error": null
}

4) device.inventory.updated.v1

{
"event": "device.inventory.updated.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.031Z",
"process_ms": 3
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null,
"device_time": "2026-03-11T15:22:06Z"
},
"data": {
"action": "updated",
"table": "devices",
"changed_fields": ["last_seen", "status"]
},
"error": null
}

5) modem.inventory.created.v1

{
"event": "modem.inventory.created.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.040Z",
"process_ms": 3
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null,
"device_time": "2026-03-11T15:22:06Z"
},
"data": {
"imei": "354485417650889",
"action": "created"
},
"error": null
}

6) device.modem.changed.v1

{
"event": "device.modem.changed.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.041Z",
"process_ms": 2
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null,
"device_time": "2026-03-11T15:22:06Z"
},
"data": {
"previous_imei": "354485417650880",
"current_imei": "354485417650889"
},
"error": null
}

7) sim.inventory.created.v1

{
"event": "sim.inventory.created.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.050Z",
"process_ms": 3
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null,
"device_time": "2026-03-11T15:22:06Z"
},
"data": {
"iccid": "8946120802005507363",
"action": "created"
},
"error": null
}

8) device.sim.changed.v1

{
"event": "device.sim.changed.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.051Z",
"process_ms": 2
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null,
"device_time": "2026-03-11T15:22:06Z"
},
"data": {
"previous_iccid": "8946120802005507000",
"current_iccid": "8946120802005507363"
},
"error": null
}

9) device.firmware.recorded.v1

{
"event": "device.firmware.recorded.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.060Z",
"process_ms": 2
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null,
"device_time": "2026-03-11T15:22:06Z"
},
"data": {
"firmware": "1.0.7",
"action": "recorded"
},
"error": null
}

10) device.firmware.changed.v1

{
"event": "device.firmware.changed.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.061Z",
"process_ms": 2
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null,
"device_time": "2026-03-11T15:22:06Z"
},
"data": {
"previous_firmware": "1.0.6",
"current_firmware": "1.0.7"
},
"error": null
}

11) stream.message_type.unmapped.v1

{
"event": "stream.message_type.unmapped.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "stream-service",
"produced_at": "2026-03-11T15:22:08.070Z",
"process_ms": 1
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null,
"device_time": "2026-03-11T15:22:06Z"
},
"data": {
"source_message_type": "Timed_Lite",
"mapped_message_type_id": null,
"action": "continue_without_reject"
},
"error": null
}