Files
ratebubble/docs/brainstorms/2026-02-28-realtime-db-redis-ui-sync-brainstorm.md
szbk 48fb0c9487 chore: .env.example güncelleme, brainstorm notu ve build artifact
- .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>
2026-02-28 12:00:33 +03:00

41 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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.