Skip to main content

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:

  1. Veri İşleme: Cihazdan gelen ham paketi doğrulayıp kalıcı veri modellerine dönüştürmek.
  2. Karar ve Aksiyon: Kural motoru üzerinden tetik üretip çoklu kanal aksiyonları çalıştırmak.
  3. 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:

  1. Core Data Pipeline (ingest -> stream -> calibration -> raw -> synth -> window)
  2. Decision & Execution (rule -> action executor -> communication)
  3. Platform & Integration (api, automation, egress, firmware)
  4. 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