Mimari
- Express REST API; kayıtlı her uygulama kendi API anahtarıyla kimlik doğruluyor.
- PostgreSQL ham olayların tek doğruluk kaynağı.
- Redis üç ayrı işi yapıyor:
- Cache-aside toplamlar: 7 günlük toplama sorgusu pahalı olduğu için sonuç kısa bir süreyle Redis’te tutuluyor. Önbellekte yoksa Postgres’e gidip önbelleği yeniden dolduruyor.
- Anlık sayaçlar: Her olay günlük bir anahtara
INCRyapıyor; “bugün kaç satın alma oldu” sorusu Postgres’e hiç gitmeden tek bir Redis okumasıyla cevaplanıyor. - Hız sınırlama: Olay alma uç noktasında Redis tabanlı sabit pencereli sınırlayıcı.
API
| Uç nokta | Kimlik | İş |
|---|---|---|
POST /apps |
yönetici anahtarı | uygulama kaydı, API anahtarı üretir |
POST /events |
API anahtarı, hız sınırlı | olay alımı |
GET /stats |
API anahtarı | 7 günlük toplamlar, önbellekli |
GET /stats/realtime/:eventType |
API anahtarı | bugünün anlık sayacı |
Test
Servis katmanı (önbellek mantığı, hız sınırlayıcı) Postgres ve Redis’in bellek içi taklitlerine karşı test ediliyor; testler hiçbir altyapı olmadan koşuyor. Henüz bir buluta dağıtılmadı.