Skip to main content

Ana Paket İşlem Akışı

ACK Semantiği

Ingest Servis cihaza döndüreceği HTTP yanıtını, paketin sistemin hangi aşamasında sonlandığına göre belirler. Aşağıdaki tablo her sonlanma noktasını, tetikleyici koşulunu ve cihazın alacağı yanıtı özetler.

HTTP KoduDurumTetikleyici KoşulSistem Etkisi
413 Payload Too Large❌ RetPayload boyutu edge limitini aştıHiçbir katmana ulaşmaz; raw DB, Redis, Kafka yazılmaz
400 Bad Request❌ RetJSON parse başarısızHiçbir katmana ulaşmaz
422 Unprocessable Entity❌ RetCPS şema doğrulaması başarısızHiçbir katmana ulaşmaz
200 OK⚠️ Kabul (duplicate)Paket daha önce alındı; duplicate tespit edildiRaw DB'ye yeniden yazılmaz; Redis güncellenmez; warning event/log üretilir; device_runtime sayaçları güncellenir
500 Internal Server Error❌ ACK yokRaw DB insert başarısızRedis ve Kafka aşamasına geçilmez
500 Internal Server Error❌ ACK yokCanonical normalize başarısızRaw DB yazıldı; Redis ve Kafka aşamasına geçilmez
500 Internal Server Error❌ ACK yokRedis device_buffer write başarısızRaw DB yazıldı; Kafka aşamasına geçilmez
200 OK✅ Tam kabul (Kafka hatasız)Raw DB + normalize + Redis başarılı; Kafka emit başarılıTüm katmanlar tamamlandı; downstream servisler tetiklendi
200 OK✅ Kabul (Kafka hatalı)Raw DB + normalize + Redis başarılı; Kafka emit başarısızVeri kalıcı olarak kabul edildi; Kafka hatası operasyonel log ve retry kuyruğuna alındı

ACK Güç Sıralaması

200 OK, yalnızca HTTP seviyesinde isteğin görüldüğü zayıf bir onay değildir. Kabul garantisi şu sırayla güçlenir:

  1. Raw DB'ye yazıldı → veri kaybolmaz, replay mümkündür
  2. Redis'e normalize edildi → downstream servisler çalışma verisine erişebilir
  3. Kafka tetiklendi → işleme zinciri başlatıldı (birincil kabul koşulu değil)

Kafka başarısızlığı, veri kaybı anlamına gelmez; downstream gecikme anlamına gelir.