Ana içeriğe geç

⚠️ Arşiv Notu: Bu sayfa aktif akışın ana referansı değildir; geçmiş tasarım/bağlam için korunur.

Genel Mimari Özeti

Cınga veri işleme mimarisini tasarlarken temel problemimiz, enerji verisinin hacmi büyüdükçe EAV tabanlı sorguların pahalı hale gelmesi ve analitik hesapların yazım hattını zorlamasıydı. Bu nedenle çözümü “tek tabloyu büyütmek” yerine, sorumluluğu katmanlara bölmekte bulduk.

Nihai yaklaşımda streams zincirin giriş noktası olarak kalıyor; her paket önce burada kimlikleniyor. measurements tablosu da tamamen kaldırılmıyor, çünkü enerji dışı veya hızla evrilen değişkenlerde bu esnekliğe hâlâ ihtiyaç var. Asıl kırılım enerji verisinde yapılıyor: voltage, current, power ve energy sayaçları ayrı ham segment tablolara taşınıyor. Böylece her analiz servisi yalnızca ihtiyacı olan segmente dokunuyor.

Sentez katmanında önemli kararımız, stream-anlık türev metriklerle final skorları ayrı tabloda tutmak oldu. Window’dan türeyen metrikleri senteze koymuyoruz; bu sayede sentez tablosu şişmiyor ve hesap sorumluluğu net kalıyor. Trend, dağılım, kuantil ve zamansal davranış gibi pencereli analizler yalnızca energy_windows katmanında yaşıyor.

Bu mimarinin performans tarafındaki karşılığı şudur: ingestion hızlı kalır, çünkü ham yazım kısa sürer; sentez ve window hesapları async worker’lara kaydırılır; retry ve DLQ ile operasyonel dayanıklılık sağlanır. Tutarlılık tarafında ise idempotent upsert, versiyonlama (calc_version, rule_hash) ve deterministic rule sırası birlikte çalışır.

Kısacası Cınga’da veri işleme artık üç seviyede net ayrılır: ham gerçeklik, karar metrikleri ve zamansal analitikler. Bu ayrım hem bugünkü yükü taşır hem de yarın model genişletmelerini migration kabusuna dönüştürmeden yönetmemizi sağlar.