Bir hikaye...

Kullanıcı Ali,
favori şarkısını kaybetti

Ama artık bu sorun yok. Çünkü biz, sağlam bir favori sistemi kurduk.

Eski Durum

Problem Neydi?

Dağınık Veri

Favoriler farklı tablolarda tutuluyordu. Şarkı, albüm, playlist için ayrı ayrı tablolar...

Yavaş Yükleme

Her favori kontrolü için veritabanına sorgu. 1.000 şarkı = 1.000 sorgu!

Senkron Sorunları

Bir cihazda eklenen favori diğerinde görünmüyordu.

Kullanıcı Yolculuğu

Ali'nin Bir Günü

08:00
Telefonda
Metroda şarkı beğendi
08:01
Favorilere Ekledi
Tek tık ile
08:01
Buluta Senkron
Anında yedeklendi
10:00
İşyerinde
Bilgisayarı açtı
10:01
Şarkı Orada!
Favorilerde hazır
Yeni Durum

Nasıl Çözdük?

Tek Tablo

Polymorphic ilişki ile şarkı, albüm, playlist hepsi tek tabloda. Temiz ve hızlı.

favorites → favoritable_type

Redis Cache

Kullanıcının tüm favorileri bellekte. Sayfa yüklenince anında hazır.

user_123_favorites → [1, 5, 23...]

Anlık Senkron

Favori eklendiğinde tüm cihazlarda anında güncellenir.

Event: FavoriteAdded

Önce & Sonra

ÖNCE
  • 3 ayrı tablo (song_favorites, album_favorites...)
  • Her şarkı için ayrı DB sorgusu
  • Sayfa yüklemesi: ~800ms
  • Cihazlar arası senkron yok
SONRA
  • Tek polymorphic tablo
  • Tüm favoriler tek sorguda (Redis)
  • Sayfa yüklemesi: ~50ms
  • Anlık senkronizasyon
Performans İyileştirmesi
800ms
Eski
50ms
Yeni
16x Hızlı

Deneyin!

şarkı favorilerde
🎉

Ve Ali artık mutlu!

Favori şarkıları her zaman yanında. Her cihazda, her an.

Müzik Motoru Playlist Yönetimi