Ana içeriğe geç

Window Event Sozlesmeleri

Bu sayfa Window Servisi tarafindan tuketilen/uretilen eventlerin payload sozlesmelerini, zorunlu alanlarini ve versiyonlama kurallarini toplu olarak verir.

Event Haritasi

EventNe zaman kullanilir?ProducerConsumerAmac
synth.ready.v1Window akisinin tetiklenmesi icin tuketilirSynthesis ServisiWindow ServisiIslenecek stream baglamini almak
window.ready.v1Window hesap + yazim tamamlandiginda uretilirWindow ServisiRule Servisi / API ProjectionWindow tabanli degerlendirmeyi tetiklemek
window.failed.v1Window adimi teknik hatayla sonlandiginda uretilirWindow ServisiObserver ServisiHata gorunurlugu ve yeniden gonderim orkestrasyonu

Ortak Envelope

Window eventleri asagidaki ortak zarf yapisini kullanir:

{
"event": "<name>.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "window-service",
"produced_at": "2026-04-12T09:10:11.102Z",
"process_ms": 22
},
"context": {
"device_id": "400000011D081B70",
"stream_id": 9823412,
"device_time": "2026-04-12T09:10:08Z",
"stream_time": "2026-04-12T09:10:11Z"
},
"data": {},
"error": null
}

Input Event

synth.ready.v1

Window servisi bu eventi tetikleyici olarak tuketir.

AlanTipZorunluAciklama
eventstringEvetSabit deger: synth.ready.v1
meta.schema_versionintegerEvetEvent sema surumu
meta.trace_idstringEvetDagitik izleme kimligi
meta.producer_servicestringEvetBeklenen deger: synthesis-service
meta.produced_atdatetimeEvetEvent uretim zamani
context.device_idstringEvetCihaz kimligi
context.stream_idintegerEvetIslenecek stream kaydi
context.device_timedatetimeEvetCihaz zamani
context.stream_timedatetimeEvetStream zamani

window.ready.v1

Window hesaplamasi ve yazimlar tamamlandiginda uretilir.

Alanlar

AlanTipZorunluAciklama
eventstringEvetSabit deger: window.ready.v1
meta.schema_versionintegerEvetEvent sema surumu
meta.trace_idstringEvetDagitik izleme kimligi
meta.producer_servicestringEvetSabit deger: window-service
meta.produced_atdatetimeEvetEvent uretim zamani
meta.process_msintegerEvetIslem suresi (ms)
context.device_idstringEvetCihaz kimligi
context.stream_idintegerEvetStream kaydi kimligi
data.tables_written[]string[]EvetYazilan tablo isimleri
data.finalized_windows[]string[]HayirBu eventte finalize edilen pencere tipleri
data.calc_versionintegerEvetKullanilan hesaplama versiyonu
errornullEvetBasari eventinde daima null

Ornek

{
"event": "window.ready.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "window-service",
"produced_at": "2026-04-12T09:10:11.182Z",
"process_ms": 22
},
"context": {
"device_id": "400000011D081B70",
"stream_id": 9823412,
"device_time": "2026-04-12T09:10:08Z",
"stream_time": "2026-04-12T09:10:11Z"
},
"data": {
"tables_written": [
"windows_1d"
],
"finalized_windows": [],
"calc_version": 1
},
"error": null
}

window.failed.v1

Window adimi teknik nedenle tamamlanamadiginda uretilir.

Alanlar

AlanTipZorunluAciklama
eventstringEvetSabit deger: window.failed.v1
meta.schema_versionintegerEvetEvent sema surumu
meta.trace_idstringEvetDagitik izleme kimligi
meta.producer_servicestringEvetSabit deger: window-service
meta.produced_atdatetimeEvetEvent uretim zamani
meta.process_msintegerEvetHatanin olustugu ana kadar gecen sure
context.device_idstringEvetCihaz kimligi
context.stream_idintegerEvetStream kaydi kimligi
error.failed_stagestringEvetPipeline asamasi (input_resolution, compute, persist, publish)
error.error_codestringEvetMakine okunur hata kodu
error.error_messagestringEvetInsan okunur hata aciklamasi
error.retryablebooleanEvetYeniden denenebilirlik bilgisi
error.failed_atdatetimeEvetHata olusum zamani

Ornek

{
"event": "window.failed.v1",
"meta": {
"schema_version": 1,
"trace_id": "9f3f...",
"producer_service": "window-service",
"produced_at": "2026-04-12T09:10:11.191Z",
"process_ms": 24
},
"context": {
"device_id": "400000011D081B70",
"stream_id": 9823412
},
"error": {
"failed_stage": "persist",
"error_code": "WINDOW_DB_WRITE_FAIL",
"error_message": "windows_1d upsert failed",
"retryable": true,
"failed_at": "2026-04-12T09:10:11Z"
}
}

Retryable Karar Matrisi

  • WINDOW_DB_WRITE_FAIL: true
  • WINDOW_INPUT_TRANSIENT: true
  • WINDOW_GRID_MISALIGNED: false
  • WINDOW_POLICY_INVALID: false
  • WINDOW_INPUT_MISSING: false

Observer Replay Akisi

  • window.failed.v1 eventi Observer tarafindan consume edilir.
  • Observer, yalniz islenmemis/hata almis kayitlari ele alir.
  • Replay durumunda event ilgili zaman etiketi korunarak yeniden gonderilir.
  • Window Servisi tarafinda tekrar isleme idempotent oldugu icin ayni pencere anahtari guvenle yeniden islenir.

Versiyonlama ve Geriye Donuk Uyumluluk

  • Bu dokumanda aktif surum v1 ve meta.schema_version=1 kabul edilir.
  • Geriye donuk uyumlu degisiklikler (optional alan ekleme) mevcut v1 altinda yapilir.
  • Geriye donuk uyumsuz degisikliklerde yeni event surumu acilir (window.ready.v2, window.failed.v2).
  • Tuketici servisler en az bir gecis periyodu boyunca v1 + v2 birlikte dinlemelidir.