Stream Buffer
Bu sayfa, stream_buffer:{device_id} keyinin keyspace seviyesindeki isletim sozlesmesini tanimlar.
Bu key, Qapu pipeline'inin servisler arasi omurga state kaydidir.
Key Pattern
stream_buffer:{device_id}
Ornek:
stream_buffer:64000000C466EF70
Neden Kritik
Bu key, Ingest ile baslayan veri isleme akisinda asagidaki servislerin ortak state alanidir:
- Ingest
- Stream
- Calibration
- Raw Writer
- Synthesis
- Window
- Observer (izleme, cleanup)
Not: Kapsamli alan yapisi ve ownership matrisi icin kanonik sozlesme kaynagi:
Bu sozlesme, mantiksal olarak stream buffer omurgasinin kanonik alan tanimini tasir.
Dokuman Seti
- Genel omurga ve isletim mantigi: bu sayfa
- Kanonik alan/ownership sozlesmesi: Stream Buffer Contract
- Uctan uca ornek akis: Stream Buffer Flow
Owner Service Modeli
Ownerlik tek servis degildir; alan bazli ownerlik vardir.
- Ingest: kaydi olusturur,
ingest.*ve ilkbuffers.measurementsyazar. - Stream:
stream.*yazar,stream_idbaglar. - Calibration:
calibration.*yazar,buffers.measurementsin-place gunceller. - Raw Writer:
raw_writer.*yazar. - Synthesis:
synthesis.*yazar,buffers.synthesisdoldurur. - Window:
buffers.windowve final state bilgisini yazar. - Observer: terminal durumda temizler.
Kural: Her servis sadece kendi blogunu yazar; baska servisin semantik alanini degistiremez.
Read / Write Paths
Read Path
- Stream, Calibration, Raw Writer, Synthesis, Window bu key'i birincil hizli kaynak olarak okur.
- Alan eksigi veya key yoksa servis bazli DB fallback devreye girer.
Write Path
- Yazimlar stage bazli patch mantigiyla yapilir.
- Basarili patch sonrasi
state_versionartar. current_stagesadece basarili geciste ilerler.
Write Order (DB-Redis-Kafka)
stream_buffer (stream buffer omurgasi) operasyonel state'tir; kalici dogruluk DB katmanindadir.
Stage bazli yazim duzeni:
- Ingest: raw DB write ->
stream_bufferinitialize -> Kafka tetikleme - Stream: DB stream write ->
stream_bufferstream patch -> Kafka - Calibration:
stream_bufferupdate -> Kafka (DB kural fallback olabilir) - Raw Writer: DB segment write ->
stream_bufferraw_writer patch -> Kafka - Synthesis: DB turetilmis write ->
stream_buffersynthesis patch -> Kafka - Window: DB window write ->
stream_bufferwindow patch -> Kafka
Kural: Kafka publish basarisiz olsa bile, DB ve Redis yazimi basariliysa veri kaybi yoktur; publish outbox/retry ile tekrar denenir.
TTL ve Temizlik Politikasi
V1 onerisi:
- Active processing TTL:
48h - Terminal durumda (
completed,permanent_failed) anlik temizleme
Temizlik sorumlulugu:
- Observer, akis terminal duruma geldiginde key'i siler.
Ek koruma:
- TTL, observer cleanup kactiysa bellek birikimini sinirlar.
Failure ve Drift Senaryolari
Senaryo A: Key yok
- Beklenen davranis: Servis
failedevent + replay/retry isaretler. - Etki: Aksam gecikir, dogruluk korunur.
Senaryo B: Stage uyumsuzlugu
- Beklenen davranis: Stage geri gitmez; ayni stage replay edilir.
- Etki: Idempotent isleme korunur.
Senaryo C: Redis write hatasi
- Beklenen davranis: Stage
failedevent uretilir, retry kuyruğu devreye girer. - Etki: Geçici olarak zincir durur, veri kaybi olmaz.
Senaryo D: Orphan key birikimi
- Beklenen davranis: Observer cleanup + TTL fallback
- Etki: Redis sisme riski kontrol altinda tutulur.
Reconciliation ve Rebuild
Rebuild kaynaklari:
- Raw payload kaydi
- Stream ve typed measurement tablolari
- Synthesis/window kalici tablolari
- Event loglar (stage izi)
Rebuild stratejisi:
- Eksik stage belirlenir.
- En son basarili stage'den itibaren servis replay edilir.
stream_bufferyeniden insa edilip pipeline kaldigi yerden devam eder.
Gozlemlenebilirlik Metrikleri
stream_buffer_read_miss_totalstream_buffer_patch_fail_totalstream_buffer_stage_stuck_totalstream_buffer_orphan_key_totalstream_buffer_cleanup_totalstream_buffer_replay_requested_total
Alarm onerisi:
- Miss oraninda ani artis
- Stage stuck sayisinda artis
- Cleanup oraninda dusus + orphan key artis
Kullanım Senaryolari
1) Ingest baslangici
- Cihaz paketi kabul edilir
stream_buffer:{device_id}initialize edilir- Asama
ingestedolur
2) Stream baglama
- Stream DB kaydi olusur
stream_idkey'e patch edilir- Asama
streamedolur
3) Kalibrasyon in-place guncelleme
buffers.measurementsalanlari overwrite edilir- Yeni paralel buffer acilmaz
4) Observer terminal cleanup
- Akis
completedveyapermanent_failedolur - Key silinir
Capraz Referanslar
- Kapsamli alan/ownership sozlesmesi:
/projects/qapu/services/redis/keyspace/stream-buffer/contract - Ornek asama akisi:
/projects/qapu/services/redis/keyspace/stream-buffer/flow - Redis ana prensipleri:
/projects/qapu/services/redis