System Design mülakat sorusuOrtaMesajlaşma & Async
Bir e-posta / bildirim gönderim servisi tasarla
E-posta/bildirim gönderim servisi tasarla: gönderim isteklerini al, ölçekte async teslim et.
Mülakat kapsamı
Client → Gateway/LB → App → Message Queue; worker (App) kuyruğu tüketir; durum için App → DB. Client → Queue yok.
Fonksiyonel gereksinimler
- Gönderim isteği kabul et (kime, konu/gövde veya şablon).
- Teslim işini kuyruğa koy, worker’larla işle.
- Teslim durumu / retry’ı yüksek seviyede takip et.
Kalite ve ölçek hedefleri
- Gönderim, çağıranın HTTP isteğini SMTP/provider gecikmesinde bloklamamalı.
- Milyonlarca e-posta spike’ı kalıcı kuyruk ister.
- Durum sonra depodan sorgulanabilmeli.
Kapasite varsayımı
Bu ölçeğe göre tasarla
Günde ~100M e-posta ≈ ortalama ~1.160 gönderim/sn; kampanyalarda tepeler çok daha yüksek.
Diyagramdan fazlasını pratik et
Froquiz tuvalinde bileşenleri yerleştir, veri akışını bağla ve senaryoya özel incelemede eksik kararları gör. Ayrıntılı çözüm ve değerlendirme Premium ile açılır.
Premium'u incele →