Skip to main content

Envelope: Synthesis Servisi

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

Synthesis servisi, segment tablolardaki ham ölçümleri okuyarak fiziksel anlamlı ölçek değerlerine çevirir ve synth tablolara yazar. Başarı durumunda Window servisini tetikler, hata durumunda Observer'ı bilgilendirir.

Event Envanteri

EventNe zaman üretilir?ConsumerAmaç
synth.ready.v1Tüm sentez adımları başarıyla tamamlandığındaWindow ServisiPencere hesabını tetiklemek
synth.failed.v1Herhangi bir sentez adımı hatayla sonlandığındaObserverHata görünürlüğü ve replay

synth.ready.v1

Özet

BaşlıkDeğer
Topicqapu.synthesis
Producersynthesis-service
ConsumerWindow Servisi
Tetikleyiciraw.persisted.v1 tüketimi sonrası tüm sentez hesapları tamamlandığında
KritiklikYüksek — pencere hesabını tetikler

Payload

{
"event": "synth.ready.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i0",
"producer_service": "synthesis-service",
"produced_at": "2026-03-11T15:22:11.500Z",
"process_ms": 180
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:11.600Z",
"iccid": null,
"imei": null,
"firmware": "2.3.0"
},
"data": {
"current_stage": "synthesized",
"state_version": 5,
"synth_rows_written": 48
},
"error": null
}

Alan Açıklamaları

AlanTipZorunluAçıklama
data.current_stagestringEvetSabit: synthesized
data.synth_rows_writtenintegerHayırSentez tablosuna yazılan satır sayısı

synth.failed.v1

Özet

BaşlıkDeğer
Topicqapu.synthesis
Producersynthesis-service
ConsumerObserver Servisi
KritiklikYüksek — pencere hesabı bloke olur; Observer replay kararı verir

Payload

{
"event": "synth.failed.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i1",
"producer_service": "synthesis-service",
"produced_at": "2026-03-11T15:22:11.600Z",
"process_ms": 20
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:11Z",
"iccid": null,
"imei": null,
"firmware": null
},
"data": {
"failed_step": "scale_conversion"
},
"error": {
"failed_stage": "synthesis",
"error_code": "SYNTH_SCALE_ERROR",
"error_message": "Calibration coefficient missing for channel CH3",
"failed_at": "2026-03-11T15:22:11Z"
}
}

Alan Açıklamaları

AlanTipZorunluAçıklama
context.raw_idintegerEvetraw_packets tablosuna yazılan paket kimliği
context.stream_idintegerEvetStream kaydı kimliği
context.device_timedatetimeEvetCihazın paket üretim zamanı
context.stream_timedatetimeEvetSynthesis servisi işlem zamanı
data.failed_stepstringEvetHatanın oluştuğu sentez adımı
error.failed_stagestringEvetSabit: synthesis
error.error_codestringEvetHata kodu (SYNTH_SCALE_ERROR vs.)
error.error_messagestringEvetİnsan okunur hata açıklaması
error.failed_atdatetimeEvetHata oluşum zamanı