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>
This commit is contained in:
@@ -31,6 +31,7 @@ RATE_LIMIT_MAX_REQUESTS=30
|
|||||||
API_KEY_WEB=web-frontend-key-change-me-in-production
|
API_KEY_WEB=web-frontend-key-change-me-in-production
|
||||||
API_KEY_MOBILE=mobile-app-key-change-me-in-production
|
API_KEY_MOBILE=mobile-app-key-change-me-in-production
|
||||||
API_KEY_ADMIN=admin-key-super-secret-change-me
|
API_KEY_ADMIN=admin-key-super-secret-change-me
|
||||||
|
# Frontend Vite env'de kullanilacak key'ler icin frontend/.env.example dosyasina bak.
|
||||||
|
|
||||||
# === TMDB API Configuration ===
|
# === TMDB API Configuration ===
|
||||||
# Get your API key from https://www.themoviedb.org/settings/api
|
# Get your API key from https://www.themoviedb.org/settings/api
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
---
|
||||||
|
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.
|
||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user