Envelope: Raw Writer Servisi
Topic: qapu.raw-writer
DLQ: qapu.dlq.raw-writer
Producer: raw-writer-service
Raw Writer servisi, kalibre edilmiş ölçümleri segment tablolara idempotent biçimde yazar. Tüm yazımlar tamamlandığında raw.persisted.v1, herhangi bir yazım hata verdiğinde raw.failed.v1 üretilir.
Event Envanteri
| Event | Ne zaman üretilir? | Consumer | Amaç |
|---|---|---|---|
raw.persisted.v1 | Tüm segment yazımları başarıyla tamamlandığında | Synthesis Servisi | Sentez adımını tetiklemek |
raw.failed.v1 | Herhangi bir segment yazımı hatayla sonlandığında | Observer | Hata görünürlüğü ve replay |
raw.persisted.v1
Özet
| Başlık | Değer |
|---|---|
| Topic | qapu.raw-writer |
| Producer | raw-writer-service |
| Consumer | Synthesis Servisi |
| Tetikleyici | calibration.ready.v1 tüketimi sonrası tüm segmentler yazıldığında |
| Kritiklik | Yüksek — sentez adımını tetikler |
Payload
{
"event": "raw.persisted.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i0",
"producer_service": "raw-writer-service",
"produced_at": "2026-03-11T15:22:10.090Z",
"process_ms": 42
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:10.200Z",
"iccid": null,
"imei": null,
"firmware": "2.3.0"
},
"data": {
"current_stage": "persisted",
"state_version": 4,
"segments_written": 3,
"measurement_count": 48
},
"error": null
}
Alan Açıklamaları
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
context.raw_id | integer | Evet | raw_packets tablosuna yazılan paket kimliği |
context.stream_id | integer | Evet | Stream kaydı kimliği |
context.device_time | datetime | Evet | Cihazın paket üretim zamanı |
context.stream_time | datetime | Evet | Raw Writer işlem zamanı |
context.firmware | string | Hayır | Cihaz firmware versiyonu (varsa) |
data.current_stage | string | Evet | Sabit: persisted |
data.segments_written | integer | Evet | Başarıyla yazılan segment tablo sayısı |
data.measurement_count | integer | Hayır | Yazılan toplam ölçüm satırı |
raw.failed.v1
Özet
| Başlık | Değer |
|---|---|
| Topic | qapu.raw-writer |
| Producer | raw-writer-service |
| Consumer | Observer Servisi |
| Kritiklik | Yüksek — sentez adımı bloke olur; Observer replay kararı verir |
Payload
{
"event": "raw.failed.v1",
"meta": {
"trace_id": "01a2b3c4d5e6f7g8h9i1",
"producer_service": "raw-writer-service",
"produced_at": "2026-03-11T15:22:10.200Z",
"process_ms": 15
},
"context": {
"device_id": "400000011D081B70",
"raw_id": 12345,
"stream_id": 9823412,
"device_time": "2026-03-11T15:22:06Z",
"stream_time": "2026-03-11T15:22:10Z",
"iccid": null,
"imei": null,
"firmware": null
},
"data": {
"failed_segment": "measurements_voltage"
},
"error": {
"failed_stage": "raw_write",
"error_code": "RAW_WRITE_CONSTRAINT_VIOLATION",
"error_message": "Duplicate stream_id in measurements_voltage",
"failed_at": "2026-03-11T15:22:10Z"
}
}