- .env.example: frontend/.env.example dosyasına yönlendiren yorum eklendi. - docs/brainstorms/2026-02-28-realtime-db-redis-ui-sync-brainstorm.md: realtime DB/Redis/UI sync için mimari kararları, neden event+snapshot yaklaşımı seçildiği ve açık soruları belgeleyen brainstorm dökümanı. - tsconfig.tsbuildinfo: TypeScript incremental build artifact güncellendi. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
date, topic
| date | topic |
|---|---|
| 2026-02-28 | 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:
- Event-only (lightweight): sadece socket eventleriyle state güncelleme.
- Polling fallback: belirli aralıkla REST çekme + eventlerle destekleme.
- 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|deletedcache:written|expired|clearedmetrics: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)
- admin panel için
- 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:planile implementasyon adımlarını ve dosya değişimlerini netleştir.