--- date: 2026-02-28 topic: realtime-db-redis-ui-sync --- # Realtime DB/Redis UI Sync ## What We're Building Hem `Yonetici Dashboard` hem de `Icerik Katalogu`, backend tarafında oluşan veri değişimlerini Socket.IO ile anlık alacak. Kapsam yalnız job progress değil; DB write, Redis write, TTL bilgisi, cache hit/miss ve source (cache/database/netflix) telemetrisi de canlı akacak. Bağlantı kopup geri geldiğinde istemci yalnız yeni eventleri dinlemekle kalmayacak; otomatik snapshot çekip state'i yeniden senkronlayacak. Böylece UI drift ve event kaçırma riski pratikte ortadan kalkacak. ## Why This Approach Üç model değerlendirildi: 1. Event-only (lightweight): sadece socket eventleriyle state güncelleme. 2. Polling fallback: belirli aralıkla REST çekme + eventlerle destekleme. 3. Event + reconnect snapshot (seçilen): normalde event akışı, reconnect sonrası tam snapshot senkronu. Seçim sebebi: Kullanıcı ihtiyacı "anlık" ve "doğru"; reconnect senaryosu kritik. Event+snapshot, replay/offset kadar karmaşık olmadan güçlü tutarlılık sağlar. ## Key Decisions - Kapsam: canlı güncelleme hem Dashboard hem Katalog için açık olacak. - Event ailesi genişletilecek: - `content:created|updated|deleted` - `cache:written|expired|cleared` - `metrics:updated` (hit/miss, source dağılımı) - mevcut `job:*` korunacak. - Snapshot endpointleri: - admin panel için `/api/admin/overview` - katalog için `/api/content` (gerekirse hafif summary endpoint) - Reconnect davranışı: socket reconnect olduğunda her iki görünüm kendi snapshot'unu otomatik yenileyecek. - YAGNI: event replay/offset ilk sürümde yok; gerekirse v2. ## Open Questions - Katalogda tüm değişimler anında kart gridine mi işlenecek, yoksa "yeni içerik geldi" toast + soft refresh mi tercih edilecek? - Dashboard eventleri için throttling (ör. 250ms batch) gerekli mi? ## Next Steps - `/workflows:plan` ile implementasyon adımlarını ve dosya değişimlerini netleştir.