System Design mülakat sorusuOrtaİşbirliği Sistemi
Google Calendar benzeri bir takvim sistemi tasarla
Google Calendar tarzı etkinlik tasarla: toplantı oluştur, müsaitlik kontrol et, katılımcıları bilgilendir.
Mülakat kapsamı
Client → Gateway/LB → App → Cache (sıcak ajanda) + DB (etkinlik) + Message Queue (hatırlatma/davet). Client → DB yok.
Fonksiyonel gereksinimler
- Takvim etkinliği oluştur/güncelle/iptal et.
- Zaman aralığı için kullanıcının ajandasını sorgula.
- Etkinlik değişince katılımcıları bilgilendir (async olur).
Kalite ve ölçek hedefleri
- Ajanda okuması hızlı olmalı (cache yardım eder).
- Etkinlik gerçeği kalıcı DB’de yaşar.
- Bildirimler yazma API’sini sonsuza bloklamamalı.
Kapasite varsayımı
Bu ölçeğe göre tasarla
Günde ~20M etkinlik okuma (~230 RPS) ve ~2M yazma (~23 RPS ortalama) varsay.
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 →