Plasmon: 100K+ Edge Cihaz İçin Telemetri Mimarisi
ESP32 firmware, MQTT/TLS RPC, yerel ring-buffer ve RabbitMQ ingest hattı
Problem
Fabrikalarda GSM/4G bağlantısı sık sık dalgalanıyor, saatlik baz istasyonu kesintileri yaşanıyordu. Geleneksel HTTP yoklamaları bellek taşmalarına ve veri boşluklarına yol açıyordu. Cihazların hem telemetri akıtması hem de güvenli uzaktan setpoint ve OTA alması gerekiyordu.
Mimari Karar ve Savunma
ESP32 üzerinde C ve statik bellek tahsisi kullanılarak dinamik malloc fragmentasyonu önlendi. REST yerine kalıcı MQTT/TLS (QoS 1) soketi kurularak hücresel veri tüketimi %85 azaltıldı. Hücresel modemin kilitlenmesine karşı bağımsız transistör güç kesme anahtarlaması eklendi.
Üretim Sonucu
100K+ cihaz ölçeğine göre modellendi. 4G hücresel hat kopsa bile 320KB dahili flaş ring-buffer telemetri kaydını RAM taşması yaşamadan sakladı; hat geldiğinde 0 paket kaybıyla kuyruğa boşaltıldı.
Başlangıçta telemetri paketleri için JSON formatı kullanılmıştı. Baştan Protobuf veya saf ikili (packed struct) mimarisine geçseydim hücresel tüketimi ilk günden %65 daha aşağı çekebilirdim.