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