Ana içeriğe geç

Async Queue ve Worker Akışı

Ingestion hattını yormamak için sentez ve window hesapları asenkron worker’lara ayrılır.

Redis Kuyrukları

  • synth_queue
  • window_queue
  • dead_letter_queue (öneri)

Mesaj İçeriği (son karar)

Minimal payload kullanılır:

  • stream_id
  • device_id

(Tam ham verinin queue’da taşınmaması kararlaştırılmıştır.)

Worker Pipeline

  1. Ham segment upsert tamamlanır.
  2. synth_queueya iş bırakılır.
  3. synth_worker ham segmentleri DB’den okur, synth hesaplar, energy_measurements_synth upsert eder.
  4. Başarılıysa window_queueya iş bırakır.
  5. window_worker fixed + rolling pencereleri günceller, energy_windows upsert eder.
  6. Hata olursa retry/backoff, limit aşarsa DLQ.

Dayanıklılık Kuralları

  • idempotent upsert zorunlu
  • dedupe/lock zorunlu
  • retry politikası merkezi
  • Redis cache hız katmanı, doğruluk kaynağı DB