Skip to main content

Raw Writer Event Sözleşmeleri

Bu sayfa Raw Writer Servisi tarafından üretilen eventlerin payload sözleşmelerini, alan anlamlarını ve örneklerini toplu olarak verir.

Event Haritası

EventNe zaman üretilir?ConsumerAmaç
raw.persisted.v1Tüm segment yazımları başarıyla tamamlandığındaSentez ServisiDB yazımının tamamlandığını bildirmek
raw.failed.v1Herhangi bir segment yazımı teknik hatayla sonlandığındaOps/Replay WorkerHata görünürlüğü ve replay tetiklemesi

Ortak Envelope

Raw Writer eventleri aşağıdaki ortak zarf yapısını kullanır:

{
"event": "<name>.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "raw-writer-service",
"produced_at": "2026-03-11T15:22:10.090Z",
"process_ms": 42
},
"context": {
"device_id": "400000011D081B70",
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:10Z"
},
"data": {},
"error": null
}

Alan notları:

  • meta.process_ms: Raw Writer servisinin bu event için uçtan uca işlem süresi (ms).
  • context.device_time: Cihazın ürettiği zaman damgası.
  • context.stream_time: Stream servisinde kaydın açıldığı sistem zamanı.

raw.persisted.v1

Tüm segment tablolarına yazım başarıyla tamamlandığında üretilir.

Alanlar

AlanTipZorunluAçıklama
eventstringEvetSabit değer: raw.persisted.v1
meta.schema_versionintegerEvetEvent şema sürümü
meta.trace_idstringEvetDağıtık izleme kimliği
meta.producer_servicestringEvetSabit değer: raw-writer-service
meta.produced_atdatetimeEvetEvent üretim zamanı
meta.process_msintegerEvetİşlem süresi (ms)
context.device_idstringEvetCihaz kimliği
context.stream_idintegerEvetStream kaydı kimliği
context.device_timedatetimeEvetCihaz zamanı
context.stream_timedatetimeEvetStream zamanı
data.persistedbooleanEvetYazım tamamlandı mı
data.written_segmentsstring[]EvetBaşarıyla yazılan segment adları
errornullEvetBaşarı eventinde daima null

written_segments değerleri:

  • voltage, current, power, energy — her pakette zorunlu
  • device, register — her pakette zorunlu
  • environment, water, location — pakette ilgili alan varsa eklenir- generic — hiçbir segment tablosuna girmeyen skalar değişken varsa eklenir

Örnek

{
"event": "raw.persisted.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "raw-writer-service",
"produced_at": "2026-03-11T15:22:10.090Z",
"process_ms": 42
},
"context": {
"device_id": "400000011D081B70",
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:10Z"
},
"data": {
"persisted": true,
"written_segments": [
"voltage",
"current",
"power",
"energy",
"device",
"register"
]
},
"error": null
}

raw.failed.v1

Herhangi bir segment yazımı teknik nedenle tamamlanamadığında üretilir.

Alanlar

AlanTipZorunluAçıklama
eventstringEvetSabit değer: raw.failed.v1
meta.schema_versionintegerEvetEvent şema sürümü
meta.trace_idstringEvetDağıtık izleme kimliği
meta.producer_servicestringEvetSabit değer: raw-writer-service
meta.produced_atdatetimeEvetEvent üretim zamanı
meta.process_msintegerEvetHatanın oluştuğu ana kadar geçen süre
context.device_idstringEvetCihaz kimliği
context.stream_idintegerEvetStream kaydı kimliği
error.failed_stagestringEvetSabit değer: raw_writer
error.error_codestringEvetMakine okunur hata kodu
error.error_messagestringEvetİnsan okunur hata açıklaması
error.retryablebooleanEvetHata retry edilebilir mi
error.failed_atdatetimeEvetHata oluşum zamanı
error.failed_tablestringHayırHatanın oluştuğu segment tablosu

Örnek

{
"event": "raw.failed.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "raw-writer-service",
"produced_at": "2026-03-11T15:22:10.130Z",
"process_ms": 42
},
"context": {
"device_id": "400000011D081B70",
"stream_id": 9823412
},
"error": {
"failed_stage": "raw_writer",
"error_code": "RAW_DB_WRITE_FAIL",
"error_message": "measurements_current insert failed",
"retryable": true,
"failed_at": "2026-03-11T15:22:10Z",
"failed_table": "measurements_current"
}
}

Hata Kodları Referansı

KodretryableAçıklama
RAW_PAYLOAD_MISSINGfalsedevice_buffer veya measurements bulunamadı
RAW_DB_WRITE_FAILtrueSegment tablosuna yazım başarısız (geçici DB hatası olabilir)
RAW_SCHEMA_MISMATCHfalseGelen veri beklenen şemayla uyuşmuyor