← Tüm projeler

Pulse BI API

Uygulamaların olay gönderip toplu ve anlık istatistik sorguladığı bir analitik servis. Redis'i bağımlılık listesinde bırakmadım; önbellek, anlık sayaç ve hız sınırı onun üzerinde duruyor.

Dönem
Ağustos 2026
Alan
Full-Stack & Mobil
Rol
Tek kişilik proje: tasarım, kod, test, değerlendirme
Teknoloji
Node.js, Express, PostgreSQL, Redis, Docker, Jest
Kod
Talep üzerine paylaşılır
O(1)anlık sayaç okuması
3Redis görevi

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:
    1. 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.
    2. Anlık sayaçlar: Her olay günlük bir anahtara INCR yapıyor; “bugün kaç satın alma oldu” sorusu Postgres’e hiç gitmeden tek bir Redis okumasıyla cevaplanıyor.
    3. 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ı.