Files
ratebubble/doc/decisions/ADR-002-cache-strategy.md
2026-02-28 02:44:41 +03:00

62 lines
1.3 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.
# ADR-002: Hybrid Cache Stratejisi
## Durum
Kabul edildi
## Bağlam
Netflix'ten scraped verileri nasıl saklayacağımıza karar vermemiz gerekiyor. Seçenekler:
1. **Sadece Cache**: Redis'te TTL ile sakla
2. **Sadece Database**: PostgreSQL'de kalıcı sakla
3. **Hybrid**: Cache + Database birlikte
## Karar
**Hybrid Cache Stratejisi** (Cache → DB → Netflix) seçildi.
## Akış
```
İstek → Redis Cache → Varsa dön
→ Yoksa → PostgreSQL → Varsa dön, Cache'e yaz
→ Yoksa → Netflix'ten çek → DB'ye yaz → Cache'e yaz → Dön
```
## Gerekçe
### Sadece Cache Eksikleri
- TTL dolduğunda veri kaybı
- Yeniden scraping maliyeti
### Sadece Database Eksikleri
- Her istekte DB sorgusu
- Daha yavaş yanıt
### Hybrid Avantajları
1. **Hız**: Cache hit durumunda anlık yanıt
2. **Kalıcılık**: Veriler DB'de saklanır
3. **Verimlilik**: Netflix'e gereksiz istek atılmaz
4. **TTL Esnekliği**: Cache süresi ayarlanabilir
## Sonuçlar
### Olumlu
- En hızlı yanıt süresi (cache hit)
- Veri kalıcılığı
- Netflix üzerinde minimal yük
### Olumsuz
- İki sistem senkronizasyonu
- Daha fazla kod karmaşıklığı
### Yapılandırma
```env
REDIS_TTL_SECONDS=604800 # 7 gün
```
## Tarih
2025-02-27