Cınga Backend
Cınga Backend, sahadan gelen enerji ve durum verisini güvenli şekilde kabul eden, katmanlı olarak işleyen, kurallara göre aksiyon üreten ve dış sistemlerle entegre eden merkezi servis omurgasıdır.
Bu katman; ingest ile başlayan veri akışını stream/calibration/raw/synth/window adımlarıyla analitik hale getirir, rule ve action executor ile kararları sahaya/insana dönüştürür, communication ile cihaza geri komut taşır, egress ile dış sistemlere veri gönderir, observer ile tüm hattı izler ve heartbeat/blockchain ile güvenilirlik ile doğrulanabilirlik sağlar.
Pratikte backend üç ana görevi aynı anda yürütür:
- Veri İşleme: Cihazdan gelen ham paketi doğrulayıp kalıcı veri modellerine dönüştürmek.
- Karar ve Aksiyon: Kural motoru üzerinden tetik üretip çoklu kanal aksiyonları çalıştırmak.
- Operasyon ve Güven: İzleme, alarm, retry/DLQ, audit trail ve hash-only bütünlük kanıtı ile sistemi denetlenebilir tutmak.
Bu yapı event-driven (Kafka), state/cache (Redis) ve kalıcı veri (PostgreSQL) katmanlarının birlikte çalıştığı bir mikroservis mimarisi üzerine kuruludur. Servislerin her biri idempotent, tekrar işlenebilir ve operasyonel olarak izlenebilir olacak şekilde tanımlanmıştır.
Mimari dört ana katmana ayrılır:
- Core Data Pipeline (ingest -> stream -> calibration -> raw -> synth -> window)
- Decision & Execution (rule -> action executor -> communication)
- Platform & Integration (api, automation, egress, firmware)
- Observability & Trust (observer, heartbeat, blockchain, kafka/event standardı)
Sistem İşleyiş Akışı
Bu diagram backend topolojisi için tek doğruluk kaynağıdır. Servisler arası akış değişirse önce bu bölüm güncellenmelidir.
Aşağıdaki sıralama bu mantıkla düzenlenmiştir.
1) Core Data Pipeline
Ingest Servisi
Cihazdan gelen paketi kabul eder, şema doğrular, Redis device_buffer günceller ve ingest eventini üretir.
Detay: Ingest Servisi
Stream Servisi
Parçalı paketleri assembly ile birleştirir, finalize eder ve stream_id üretir.
Detay: Stream Servisi
Calibration Servisi
stream.assembled setine cihaz/global kural önceliği ile kalibrasyon uygular.
Detay: Calibration Servisi
Raw Writer Servisi
Kalibre edilmiş veriyi ham segment tablolarına idempotent yazar.
Detay: Raw Writer Servisi
Sentez Servisi
Ham + kalibre ölçümlerden türetilmiş metrikleri üretir ve energy_synth_results katmanına yazar.
Detay: Sentez Servisi
Window Servisi
Sabit/rolling pencere hesaplarını üretir, finalize kurallarını uygular ve energy_windows katmanını günceller.
Detay: Window Servisi
2) Decision & Execution
Rule Servisi
Raw/synth/window/status verilerini kural gruplarıyla değerlendirir; trigger/reset eventleri üretir.
Detay: Rule Servisi
Action Executor Servisi
Rule tarafından üretilen aksiyon taleplerini çoklu kanal (push/email/whatsapp/webhook/audit) adımlarıyla yürütür.
Detay: Action Executor Servisi
Communication Servisi
Otomasyon veya kullanıcı kaynaklı komutları cihaza downlink olarak iletir, ACK/NACK ve retry yönetir.
Detay: Communication Servisi
3) Platform & Integration
API Servisi
Mobil ve admin kullanım API’lerini (auth, RBAC, yönetim endpointleri) tek backend katmanda sunar.
Detay: API Servisi
Automation Servisi
Zamanlanmış görevlerden komut talepleri üretir (scheduler/orchestrator).
Detay: Automation Servisi
Egress Servisi
Cınga event/verilerini dış sistemlere policy tabanlı dönüştürüp güvenli şekilde iletir.
Detay: Egress Servisi
FTP Servisi (Firmware)
Firmware dosyalarının sürüm bazlı dağıtım/indirme katmanıdır.
Detay: FTP Servisi
4) Observability & Trust
Observer Servisi
Kafka hattını read-only izler; stage latency, lag, retry, fail oranları ve cihaz canlılık dağılımını ölçer.
Detay: Observer Servisi
Heartbeat Servisi
Sabit IP cihazlara periyodik toplu ping atarak online/degraded/offline durumunu üretir.
Detay: Heartbeat Servisi
Blockchain Servisi
stream.assembled verisini hash-only zincirle cihaz bazında değişmezlik kanıtına dönüştürür.
Detay: Blockchain Servisi
5) Ortak Sözlük ve Kontrat Katmanları
Değişkenler (Sözlük Katmanı)
variables ve variable_segments sözlüğü; alan adları, segment atamaları ve birim standardı için tek kaynaktır.
Detay: Değişkenler
Status Register (32-bit Sözlük)
Cihaz STATUS bitmask yapısının merkezi sözlüğüdür.
Detay: Status Register
Kafka
Servisler arası producer/consumer topolojisi, topic akışı ve event örnekleri burada tanımlanır.
Detay: Kafka