first commit
This commit is contained in:
61
doc/decisions/ADR-002-cache-strategy.md
Normal file
61
doc/decisions/ADR-002-cache-strategy.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user